PREME/G/MU381001

025567001034541839921627409777113393271873361673281171807525135326922289700709496413655851326789496963434070928266626823638553398951859628346344407730751525345140028526279697780002033056058276981381632320431445314394059110917359074512499909518874012268675389485039687913605240469093332487802119739539108869296924681594462196110457159038167895253769635904137368339649736665769014357418446312734282183784341582882351787470330282111387170764449826199139432496307057016365777695920722199160921231623541390613070159258666703500971306741641665003248264904237231109061302340231743580524829977510874803312351443604585321587011632085284487430446391500332330591747146780768873327375498081977493295408449635629428668563260611521864861078561311553248183457546975000133769580935508900046025711200606114494069278843325896773209316781255277216765258994403997996188488320497332253737388645820684857907941590279710007868452243895847380466533060053457187060972656286455040395606043877248219794003357294948525871659201059716356135472167649258866467748612810913045844408569939611318598770755360637549147006795866838861900806819871304725276964943175158184065984246433259911245890318192004397246970640221698809378419547429550459037202119530469090315284893663492924034791284569638861169400320365707129796238258289245381862705471332800278590540529760320934123003401255905461554585105675919248541261786135631953315174314559338419593481446106321334629538782203808716334752206106720300833438234577696142049639511328656431909623974071233314355255727895127890715699437469738677933363859810526672133641521883245377886644865025029804354133560428831035545468850690796141143092931942578027612734643286425014093583729512808962564395142938276766726398940084728008770992526801522676160017543094623833758343124334723985812888347265586182999000000061495484275275073760521121698984701688141909771674893259741035235702070980737197892485178702750575213343718951439957393073013242725840982327740038092548307712779643492943006152244924055414780913432561165803185974263428012120930153446910284239702784366639952414719228524836189666981101360608143867446840724825902546697744748169276681147083951991455496123305739882144664410412115700589075608858811531802739222441487872815032331467451297685422976246565321599630524121075405298334425526249210121253421996252551489900276803603354423899699702759432168379615431959183121227835813483380325589968662088067802319477129527437554438984114214308313810714597893194893231832077098690194685676586294704705051673457822300085778609582172960436767906593729440078664373703200446327757712967909052240352724106589265512608202408396015902102780849240941984079596408336429083211968326814036571939777797230565767131888584369299829564270207662055228448513147566211997021635433962442053419025833670705520604407651873282394525097397887280606871245957082581230615516442509771494712144958515060234524954113146147465237759230415284324676128547317369718073683991156356196253375712919569243109186369828185336358379924744697735649479147637138909020825867131632780601350761421760801186985237017216288156275200673098249592908461981859438246674281247703389380845029950384740194040697101463529104962131469515889344639134094486153266291806505229928330798959382097019823189828012051328538700420451090563427446802746751291383021633150802842802534305268299450490497092045738189426589930459575352673021999561929257034218805353331236847893760532188597847127851266085158418808591108627901034187415045865608757589365563651768842035359273057623551253980879718896058620247807268771797228634626126756999668876696103718106697721086623233242290321835049025663444360600894949392351964623993592112551631209240482452395942391624281931484072901610342598055088619941846973895145558096528790172929181976676821799272596278952999839128676321089809463458213615925573352823991851722114925156640477126872061658436024909498754960446336231745638737986707466608884859171833347545009067966683139127660604478605657793270322068671323541082588039822851665286672502577674156128697138455002567939366853724727509427572278723001959262049723871523315963060250700840127703563242227532324542870393124640839795333782584393554596196293799241988867275077299660699319462808290146722135424530173788990784018096726577440174011118806607395770536492443823282726265620630251561540972375151909130506219584143113472127782126136708697361704604499382432821142827246842586691086320171697349993811084399599306805769965188421172854041637552345697825394824534297214660413572156475344464809728427803120274849429984102985313262318799417414671509679787243273556969314488061066520959996424808369850159804388899508904251530368181171718636905073180191943897392352038585264839668570379811640223918718987028478203982039854404432805589557266936584625523974749407594328043706323169303652808720988677747406942645613435394978063802489334535934280172312133208662783382594972626685282538371567622848296528346706674405274290112922382904791854701541327648283040443696635214197372477698319575649937902026598128147612263640018637364508959709804150224533832312622723502691255700759894081721702520767173911554121801147121374862128515881992045957794290368132790234370068389432482807729676792800073872989475820948461547672356253391111350126768691288387743716847570688542247126965133381104961736082375595495498910549227018768896617174076884126975951981005523339048250505242220577602005332275816181964902015561548636841308057105497402779626254183528170351584001443234512010749861423011480210664059820514386321531865646058565937040082835642288822835787469538559024878785340696232967533344220319950376857883554088400158707530978965176756185149026536091598055100474632384416046608462435801310823182706931054241735118787948164048434643093364796346395271947708314187824011710901767566694621135603901134882573853534489385229244628370684778024512781276557391157856333954582119472374861253783766762706782132846081269919872122701069418508517519700152323114062993377222021741519772649691113624304901460744369130723763238095307692638311517663910794322058601726510015583309372395099391918896097548505550309232499027152856512315731628537793239824614443353179404213710725052321107605454880388236434317851078996344320084353110319525506266487138551582603458990836804975922065006896754139952273762677145989367669965549172048312341406420399803873165813480906655040363270150703823267894966888546916644682212253933489507470760158346254020899430847167287983301344348901217783746872655816117880265425256482708830587807040529509844573603644404504031955745104756022457778023005729006516296962073100835618540433450537594092458976081315282909369853111620701501905678390789632414615206756342808403504509120883041688880855667459713014275221882662015935202418474898470347172657228498503276028993660569836310862565289325726147494989703892436789581056916642341193742640604159565090035745511890155127599923305836249859949510654735952770672256207035537550453973464426721125201839797199015426253496649579832318813901700346416054232783740637361029288567798445650227602452766558115077617976887850262313305258299838896675319262989883093299092042193343688690384700125809140321057136556578797690079206489676258338705356390664229502068674627387154872787072505856146170450942857171792656584441228701462436478164215925463797463818135390716240089131502417027310519376743542699389983610724488450790028651494229645969410558877150499695796550935899461598108978101503407978108710768584902741369336886748494349622316750565607585355196898550039520651442867931802590807885306543390343301161999000210531152599846698009396233710355891141145574718334687379075646396067374162964291462637438000119906283884584353668435498817851750778008028438711833764811813888531031363645026297848177869634795542889645665097467033632456299621808034835086222391990949224844382729322544655593303110789571040923254325809177255463763384113943697922586716479918866855976942991407872922201666495410634375827268887999627827945169487434982542361902543772910349182409052610571266306798738807740397729729098977648446481639578505211255411983054777005895725863500948840690821831857823544126273769541213440664398150169259827585300888076522569916768976576929880388014894682121105378675196260505021054258680620637042709946028554106096098509908292998018698570310225979467882030481062794776584224353587802362492429232488352982058013045314249901768256229539836556394554655889054201378101441143595564856747672057977717126461414482534860706975681205325436161918713085362417586259986748801291746359147732706887962135772791427133593531138668372757944832095972579503525719732764996539387453625571397320784020583165990325721875881996284473359931294331823247558905574588595517872008449786881333285968572573489813357110056188351814670124581913936052905734996162709044629176566458071201326996807586919226958583840177604919764912031980560373932854286697657822309477633196167981869868559097915686844792454128632623647843367027731291282839318665610839711623498887870778299419007662720469228261443324522924901959232774490968202957394396594423620230257010446871748685685879479044666141514128570315009920518512497055389407076896712928898034584885137588235573016146507382298883005329126752962565232779171099161541343011684249827032019229766613156883076555883302454552902578321330905376463323999578851877298086377074073057235970340420948780920401068499575856874862051098443661764481381125212944692495570882873354854575536487776874322626930394302868723762261790655496993122618786736558378890752826838208256684087476508930502720351445096087820830734394533149273814457134627544917411917069592560716274819599497927293117515358060414390592202214717809073214721667064177784647143663549854677932549555602668583382183872620485769749404480539423893216519098966327285408785480002614648517527492815537348380822982443759388761700567506362992439301197579638641026832556157516065371333508754403183702915871413351749001250322867763961292122233253986160331016711304025316325498215280090857573255601589671204774254854653115398779696712129105931111393987553826327278700878637299887817511696404238961595495756606871710723693302895455262158047690751632316692704536455676416803228791960345513579035751477891457680132710745530523833254092158635947362621216329647377148121399176913227037022345855774471536277345370265863656564855338167512742110084649560673577595665136745915691963321417263056324481499820350968896344082642598646855146927223504612387115883189401023994887183420321929120822094879748890803102728185886383692778591813374974699787776653869877621008600547899233940243096317210638332022935785523530046948981232397300383123295676391643009359937329191537931237123040612491987278318117183914814949344790281946626070204152671062602145216330053784927164881400437685277357922560559093151183418168244429605053129952318425537342553631503242953994208696861324570396940545034872470401112698349693785638373685614078685235706227898349686282939385075137530513486760611682311867338066531387265078385906339486586925582506974297722413988200532025157179277811101887545504767010150970019083832735589752971266664806634978290373825111968900234476523044815476177603887886527192148278913991264423421562044159888362962217592730693786330364304933376158561567855493966655431262149270400916751991062686132070569207973233339934518383573649516782121637874152301920701397353568251375180308097233909407694502167189596256194914832708579339380643320145486113534795718254070348217625973495951507055017217441768698938813665306712479182621652772945771780755526815336132409798661770103471149973283472749809936584665171592311404278827266191900978237306752297461290540655788740338818384022582225143065323036095010070430377649018200583149352997499741092785203315239646219576306181484377304521789307411798396693544259949306204375914815382241495962539541158834399645245302187752142065942357701238608418738676725348057488418268011244448229515645144909517551567514019093678669204195351857137734627599715956716194109538846010950414426357314258154801708573191038625951976191683651939645908680477636066037153772940022593676484277558725944426288001167268799964178353812293238165731194578457780482077829070123706628089525746527513631341439706897186865968158883033818395121133586462636621773318011300582902393518024064625019779836404166979389516677740412209440879613097435407593533419205615877541734959487507924394154716948508349849191072964600999938583652148824966120550731829450145408949152715084445466019634281192459003562997966748311420550118079837572231154027364543686631744493617137319575776321612164196910703720064652582503701209935912754012884359077973293625630075451871981763375123880330551382253473204273205534724616642793837956850402585424418510486026540235401819376328924830876710230770587113866753568722053545484213128009625397254769927153767333297639679087352752948568316156288061708485924987088586636139341897160154438552165494295573312774762177893621282152231947215364384160838553433399364023485964632520089986249447877012861834607911120559277128494792612833738878777446811088537542477477870140923541584925938713132948775157071083173479674293984395068567317237820039488219373560436352437621958928648070996508823514840836973782089721875167084761409085734552392444814381058121267991785082738497943371438815310838890222247091199223219054653931980292598831855968177124965505349326040005033777500157933930973816427929176257000763516280428794627570900715760769553895219595768946631647455271513105894634433839643061327033592680296953153057702039923510943295421475876886754161336819931403510483884572696144334630717637788394269869210382879427060132042886958480985783823860489796004882243844038127214359221892235823654406663891389792846025530475171446355549348813102473135257502869054197512187901247535062492641932656858015439411799839550410954440973744240408294795401629372751675236423170679374537442616839057651462432694389657795259321364103654215149044294675548205805468562584020715766594174048651602704444801723759761533362891792390673203654173957382553955619560521436129441574528457668302059497200689683444734416181268553343808470020037739176258128912971976090909347085747568335236133586901939001470703783467890270736225086096237778651701357270596296089078087767866960102154624305942646635572655014300347691546827111820353182917768276008925865870347070711116046713332729885696742420894510646656815430762191101255170546037492691262087613560707283442788685962789234863789733485303654760177865639671552444885292818614160672025366147596628269619468553845154942505679533725599541397843548434486900979746765075854229543756221868425632099633010012453770676440335257372335158306608985412818670968826661767724202832040029266986449295845099780365376713708069420714249070130538315693857349212633380706559162779616576705609759082914290472794082981341480848096122434237976649627943804451282955437242640353537395073530601680920900654383195672777595205659696300438573775244653859182423740227381995928521116865654104786455593798821450680193409875148441468858755199275684751446682783329980331785646322238410819198589895949684216568394168056569290532428839673662502431300517848632902265691451927585610835564582024757979193566228478845676218381231447452316294367833333646734489876753140625849421086650382989289576965350535691936824115954217629654743900128927957886016780493071918894745173776829066906046358896190190464639592566521954788690213892089211542277683061252929828483580145515714142257145942316006670658905408390573589967054113386241027142439198822375650770594909137759607889009711238870989724820462268864974803313489081285202040965792623578954974810866353601216145116679940911094516158749927113649037780824251031093069288534472632677066150344393952194932013047417983967162121957010069992801198412180051460132824571350398042710289670291228900406189962265673037006128422197568835483145142643107656945739862373344256156702010794418566611346073081618229497479269646158563766698636376023354389890143901472565793509354440898832902807637627745627033174837440906957216420253615925525716644541390262417323770669729374681019654451644118511449821768680934337158510164498037456909605110801197803962211142853969121325216833584204476453035457367409848591741176599237051268579395452962463706556308421470431626724204718364571633019326835602680730352495453971042169199264479243053490338876827418439793684962697040561156246407649633842629024490143142936922417027965782038825953022618362395805117765922656969322098366043636951723934445800399863234444228805695323287167931002504336965453158499198850786229584963297688440057482218182949768792800139362624192996105722398474716036313231031292195591730882268920777676591755554906394805244961627605818721029455687626350850369800019785889863678894181177578356091245328373933272482705512267422571755431374162000058182800331647381761653463401892445157109371854827452453505378305695929343811967212103410690373761919578794092564620164453291251725282017838905257565104321345957917339133780149930778060891359481510281370082941752008023757112835385038018993117085193566131207045798165007361984453948301221196948796632438356007923343428129896804156819267325957963521120895050297934302655568296276691813582303795788303433745775147055582797072572065233235365166119190585535799011107667149266231896488292767495925735913462233130585479696053831409955294918795368030104183443118836789520610475162573880056559883197058354689338096444873584574883024864655468131477927107680283959896488764497445138020492118240050490531530371922951146471979624973922571137539207318944808009550001217713668127919702909354778936855689468693533313169474084142896702798864279594430084227642889432293549549606883978087612859212707362594800282060595163867514861451976337084659206778845925350839542017952505371046569127074317934352787835248562484123066175436578997186845327415175579530176358436114584712711289303139786679513465244880321162202395382159764764475302084423928551269625609317146734834353814084697121762585392125048883011962717403235402143811659837981838897874662551667779443789818157639692162211616344648726359380256869211806276038493410650321349821967586989122030875116306019412799507403314195328183564089499714856333011215324138478283957068253342535914247004893892545569140852021998259501023655039574429341127156318848389218336056808013245683195033167751038945470112607321681009310345652262598086640476221507111177887047089308047922050656825161862482390497957812806245452639802823099441141223113182721627434881464596091133437569418848589897435404166643625005865985174615459495978392870628465410437027495307492173017671050460871530413991608621486416893018652114928295823238327976183458514870867652710739908225934619466067512322869374133488825935431475598821558354901589442689576413324659542119318075149182395830739588194009317501335417789064963086285115194915803015619745617135055343973862144691971575940263858056267339877078180909162627367044717399190153787516586963156318236207739032249944957286043612586863169489973683873714676069437616610247133328158151734226254739425195601158481170134693799712692980791740216721715892872290382102607940240943652845556863105405623577791197469840929879987018767330279480174611369203202974698638207730331800670729251998468703226391986542049108948661497550188594202436523577801198333871846871246972633205718374659256418577091983845708336566827803945359432305880086027673751357108045979708326420433923152548394706017030530428232386219855255864534663716032291886614784407521562106506772333597313837793133398985427467490960492747903281847929504650607193288281926917812889649042085957597881203250995903571935292025854972711148885625145894708438907689543516192244111281916860441951401231878313307419275086389538099102659495573782194483972622310863050947444289979388445156021733379949927786126031942870942047034799144788387828169873775343889316249219428646849437981580975624059983614632689702348518766106016577899912964644677594535924105615177091965634580895814652082726704952685714535585354458164472555028685292425829732582382782688178292322273384645306132784620059094185561326891668082848649719228866766582216151213845139534131647466067341088594138204484826575817020061809769887024821318862042730920721450565535809985383110320354725467178089367805024191574204725182234273837354549091036477589617806670814769670367034509081525593855295143996443463887289577083544746456331196231880983558261140054842830850625374248481525273236236516091025702759098649947432661157977526486532203440929813477781692649697228840176185004051483143070879945760374275381917100639374427705141141396737500048922323373473175295348171667939655417137760764602911208971267539787317555834143022437402519133243772131293765934751488266008430079679759882249656644204760544459267825530866881907818545533516844952748866320327528097828770203179705903907827779568641551482254221875196594776868806585868127049375025343701563639509227077773379828723923526021567321313714640178592004169166382373900192192892834877160234472506011045636950904194985041904805167516653955903550834251778474245413584245756061783240570291552984086672211488972059820636412601795706297438637310131968138635624398119530016057184673825301401425102737655174144618822423900480797584995803331429400112939123906005061414463114884789662700796686162790076081955009062413948049761533914420481560128266262918333971912528488712343447443785617284116880583711674039019577291854463035766342333915616782794317413890164192692499730525161388713739644760337264903223244240955038905547689000347195008538301105764813921651404974786895535696637922755862245533331954158863995322836412273428197506630095857833074765196554136058116676498766888443156082578637285504150997425169163538809707496447078657652242096768046613867872831201376142021975058987529326871648480052869087346492850365223901758879537482237098603364579649898879396349756499066133046179758014075500110590912214716912248414375602238444459203023788969125675385218343783767410000476205784419648871665860035692503557147082677317255418282488847486580124353682533614376843277384302223981342499870743874561851536603181772052693301377313197411752593663855676505509637656587976305241028698545976585147277404063479325878570119361804158314238136151696506127882015892449773951622064785194078156307939434988175812866195402194050722754038324045167382231172336304455164221785752112314643228006206267007447032691743761640837740801506968044456489825412735544873895716945313437537979475466578716267535682825487509675254886794285817787897712629470396054250661529217228780088784269869548140177899192412570359370367218413986870169475373369222405983100813123647800949690747758751991985691395112970313446904510774821116968917511205010454731691177930284321009827231711351377467548616383906433516764105573002231621156551187951953627312097316167269552455309209232628681015963382035161665537228063295025224197059677231756249971622207542926590402947430998568500140657432599707677159064641616184944778117943496438124505668782028062129709602504785820716787403256604887767882378283403978533269435447353843058920025212167968358600525941010356857959548012605819438595169331663729933972624325708473347171008304018182930850253565430356396849856312773570218735486116189879768503185743770178497209768200045512105667027350340006552639453771830448980034049501160922950229063877993289946816237423273777389755833084556153052557150741140293147963967523298184675078326222460732328472685683027919614657312128842200579047837907643522107033920826825726603010691954889149956055571293603550729416042215113020457831386135382342232887371855014211221392547642866181978141609405413249891725985649485983359092411898649273952124003018399391760094349514957641267576395538774889941546864200018140968154718452213053686633705651886691350699500908163104750284000857151772912610642905720423451915719679626300162412853392873176628083453375698033982638130354072637696300631441395474012633602176171501320902223251374551090701136064019904841955029956670310101412486958300105742303106570820334272823115407658932760794028113253000461902977042005803909926866758180495653058301073047002185410817916782811496093189824230671497799292905893524348723856949975339407492354214972808919256649294692863628027888507335471208339989484733892253618206120642214232196331356764716487297672228769244554961546689388315058057322379228130628424774626069859351402178184180570235675714130117366236933102996501009375057658893122152408131347751548710130387473466657269757575494594464375129694260681438777899697484217807627832732910201264422233771193435732083979819822147063239316979701196593066006889880559991950702313937310334920130286685744250364276002334898617095980987449795478476446087369675471441444788029152626625091764805619932556922806742423617011743845822142865635062772367172095279785224280647314367593031406010470073532811015115315997520265336713396604132885031937608231402928330813978350624673080056968118054860360218371126983002528282085152325343557426424779341382702377630601634867145013176864074256546775547038977718783435130355741924865699156025132976804266760576341305349524454916928824610702943941778371835174661543646623091177364847173069856294879912566007267439733784013326329305678787971522221916737395529467786898221402660143628925620940702926092358384180217772452169917980240593050383516227153672578498456488756301544939798781426092562559510929892647958941619453816638170468717932044879986421270309942348043622768049063008757748977901655820369371883943806126877348693783601780478060300444620050878608165466074961408379975069813082982772851120146664528565460761575372327763676537316912091947220102390979953919120688735537698540309723585457501562507173641955872022218691364972355694967855753412962258398851240730530215833967351080346442248729514624154248583558073324725680823974636656241965195274959475802969325835314351009177050439824654058594288194248410877551254322365251426281931270003173317074149400434060064093421449606321834007390545445308212082076009622910594368408564407450151317741832517683332946099231682800760852066681198989242757087897972140998382393672166970347867139629450576029927597654000167920600593833011612149388915357341146455404012819957386711916454853360789748857557469227183436394390615290599970332977664545658881973814448611301892306477553402009774380315744160397757104527768938424666170437993188701184955167960058277418258532649261037333974784375774405012237551602610336514747011968498241666255281311161147445017966892876448075465845206911386613830484497360716538678476313726088099382863792232890649872538816116751134136716645395554376851311098941624675478537201882520493521480837484291820763201142435427495181145626192283728188433594656041411783999718657471963386046400446248024466336983630601935159293002346075934480854813442931489001724624507263276999837093717894134877910103299418044876204797221612658472220652274597861915324359611532019016233195744722574194397358242511552047779797711983888313477634937555660991499986068991617302418348137557787609336709095398061029748220874167314041184130529297500804032841481226295398960524647858434258311067835051459662601543314226653640088317729179613604735544560177132673777242065103218038512261606048510917450681084237330999480728454007587465345768573464272705696338217682720692473359251677567545719350361724648107758833398559641994839625486045149132668524026999270109645599008736037461265890342369094163164128082030875014666944635708786411550744916476269195435166845410535102193813119688105296873412215568851415671140637598988951972567817565149796681215467216795865489431867726944962800429276039329048011391303471579401073965082745913289623184084417244907117721251877866993835626155442790082933291272062166649545310017998269289319151605171341088397319022569443496155555760557089911896959445532777660311989529223215571174970964140732311559762760405655401822567131185355070023853438474216516669053581081755121896361850940847841707834292940634870475637341474216662633030385866003981396820856017594424446754281105765814273418283998995538812374293043604111368687638853763138805024481768937092011248704303040126718240602026516978598520523085031661651932836731384504017504309162193966256839051147522666270109990132175333157381084971063470388021345631793145569259465284541975025155354650911050429355872281159582504911683048326499127518308257417311310258683345648937995732368628210571352969190502645042999682414108786209716287109412573788931999775372414706538180464191019992312033267785132567671644796907170773295394126363287327524952069351742303734036330208114858931150117484506831307563262310999270108248107989250869018457703542489853957850445752093846527843407893805373068339218199528799614731001971736595874615597037224608455796383315511568931590861844306115051320512331796985552203923649692037276711670322131150383203354311207268259735798225201062450275198331465088840573366581477162449434980206589513220634154582402216499820341423647777559190598156731983723664357380658108200239747922727003342945600923750605699306065585533033358970293305830176370988917263934798227872116931495446218394896237427256613945661526134208542253459100562378776825679831868770294875067225151481480326679062151745286842986459412046746116467307740212965798692493670754914423449476353091857973963781118282637829361295962622385747762729704411330173990512710477428322673889653766709038104493536614840049650486114223389482666795862280404402489205767790685853387471078167252289754399477618596550791784766639437205109529883261858322931822906773085286514829326619186540501064262964215153330220237606938249473242380684445628043727553011873253446147566045467228820130122850799084385128340689123959302974506169370826390675772229867968811510409985988369198860109240815602666839527556746264442760280470905476451692443556279247420012561479947448026630681499655820793019734021813753648736194334535906616000509598185973854183246278170808356463495860211799969474351298342261082171115728682127712568305534599301331065492982011777441184531635120202551039418114884460367367579723430973828041819544188564845584146462425422656007400002386182526674507300458446617785496795898771968853620364865045752939785602870444244571218801550146840613660301072880249228683207549267894999950100590064908950669584029885220897906444753236310667375114840323149411263748499709392740524245596476903776407095259322891014870641411639906349520133316051634902156663090423917851045020183140896636270789550736433721652928475155358394044706172863268010124150425310867564868117517510965728023902863859467003851717056430679275177453476948832004487754180471048876430887973223055676305040214614390757206794663920984301949012899420910344745137431819134395115565505256054196295996053090258900282363024403621006992789163943241322134060756658653241819510680188870161622893662460390478401605932341441489951277263222715784145606096254191825241014950262634088404639523593714330306281113970297590944820103445831518004964525081892581302891430719398068589502024707890428885642441524626210284741332418612909039699520602354721545243389603826336644629137612829109232292568260474003777393370937406291712827523009258417343571606045913008946631401757837696669046727061026540866745303158422393695854720886968348668178716977557558863842766593518414300620951002818184096461495687542848745692775834900334792760622699519873182495124557162302000055150432129117580090349701823076053041648262185045450800089842696349076987776982641938346150565768055147934030045738289391715320586991249667363476418186879253169607952353244727792046626350999833996879389453514439541502901779126206175049890111347900577850198931626192502352695735272537653602043721844686849933256357383177060078616111662725027683703520995778744911928615854719792260268807637431799160054297450784797291290832513072309371034851532893845851507031099196854381432508538498606127207843782709535318635411057484323535443558062299396927677564891097029476021350672797101439242864762022891510769326465901573200188648861578119208620407059829135322591054407827085867781705536375844322410219444674874104886772748876207635055688669983460537271880472722571234057303180152206100003430029106730868640745752042523030582347887797311337510366171218184530593873268563560596055798649429831618847332507295258982398464550152180110727742630625323502938011217121445614007577435804520863977026392102635458518301282298134037405176446167330613673319185212215961826084793618751230632119661574384843682100754254485617710972504456232709254784919594541253576631750078139596015290122724905090471417463009656321299548408928277162460922675248056307186430402616743841757926522436236688713209227098132700995944327533145630373111811118201674146621241042565885956746620743524538106500996037650654413036847749371723256381356698483897595827422536076377467308801758127335600414700053737333537250299247540277622758540270587227213588103575472455896011204493370771637269451729511258306593068478323511080134943920466900269923329029839454367850377062672091188315810353191996384181774870030543938800567048959598030328588783895175823804570149489072447220573120320985742369364181475894153763698245083205074433401360874360267566160246336095222454563138110037300420304996866034237480372894146975407680005666621344282271477020449125971069173097161789700963157926148155219281429900454248983745670012365721802453428583768268751458841395480356455825370359151319276729672952133185137050641926364669946517778354981863127042157992924237954151671201978637951041314591538990429457335955956128074855119551402639098606101344200342544711231846656006931033950500624081973878549422773178835820712251546730034147506794985588070002199377198235031719650678434325057759872098223799851165827827867101775551980092237477515905073901076684682148115044740591194334889017040357940701198839411627681946622038031870334740558703754854386386594742267933193213128988565577074932655348585854649362833842352635098353530394141664453001254355355758939070797604296887863740841335275842570976209493558708462467644482074918528983318640411697625133653364570664991482284119815344248799409387567176082560969724131846461225052383401171483063568152443142192832219804147516780854309755372422315999174033795772854559162664962854104294093755030715194821332413294577843831127318657850456390589840823692074555078268548346581869549469259246724916470929269629345432952967568344237146260246133370977508522695084789137824393791947804863242310811490023839551445906719783841476977090258207723125643122734182410580226305697579515644718290910800032157780740109870722964946616403570594800083142235468541663556753205662083641775517145110230022658764546198635768495893726599786416107957585442460655054128117061081775172099731161637303544360684134859698958075688058698693118203550231441722401155620596553717807224130817068211732630594017545680959374627641799322911980997091018595044200214581408375252792717343448286295230313755748837137441496287704342155975071012796482807746821499759929455679382499490802662916584401669400258234994126330551722576815377539830090037237352729966501339821259159070267734380146828234182490154933903012612001307841067843697748811838356396797465098874946507323862923802734913482755878807633807318620270329222281837384377457472114460530018898226196342051631929370256598249528002165049246808162973233555618553883856933691460027309867858258969155682813957604662088789863143028297410931036131492760452919062471673651818092226498810659564323492603235771574068429716748880552356669746954609573320408540206966239984721212507965896428937666229447139864638332365867857278758094044033158204062004982436102668616333582735801283134931448056441655643570136823554447566139777618481220764303777380807262880770073287573353469622821961334963040387025822802696992048580513419031381830633932222948101343927658006558195041095153123875144393136818802478544813951049290208034426148645074291932932790157716978775418473449018835193638803018188919493833063217877709606447724385479893636904425518539741052630890569543147239794141150631749092454151626419602121914882097175012455576930307575124567017872026017228379431055021129201439591553868283099659842794875139973854298727419169850455575679120275971971282971197690046708292657930396401179382783082545142745040916211693238154415111090655660027447496977935217187652125758776164319114922652005788772408820273279303047815094253374863463279036069528168262842434593540993887828861656849305311392451979606197376650860060786876237133367929790082014233877124028637042845964588481704626465890171141632842521442222359809890118520027725391355517278646033109898601154418478488095605800378248495871246213647071112982153342801739074947688305909548664113779400073034196642890543938408289692167840969138011897483876214967464342538150386920761143734557695937508758882618610167049971439341146284403061189680255802168676182622191186164336906370230367710751678327593876299563373777048551754773149495521488221158864083691219087797006411859654491591299320518455505088777315420198782626782785487325927278791342005448534249039897258670312387839363470250090564468215924157982975870804193465965206321821963460406721920684926417144297755107121134951982930524549433923503152939573995421738485583975887038455147309425800013951055865495487890928479956441947083212342915143080032570125853947912959252916918238091098813279652287105431447344868353312918728567384620690798194044405864911029700213183534619953449196250271942404072494970840677160116113199575663589713554881941317580177784971863442395025895218314944970537517622053123804242389165557551057678217833220390135993609451536486771753256039935886883806874159975412817443156125328784938696063510759821088668958268171841270346584087123148205213038250660738559903857711375822772297526280498096983899865140479535682643074929135780597309894414148392687816836543883842364156879603321719968094552757141269027998729703024291171184955068723178493104669135273670516754423076662780162681044361824519509609036065933636258007058842865093234002384266899242618172715581075990991788101278692653533318387204309953166810403280660887016440012845810837528585658617703860345600310261733038674083698087195449027036664213190130974686320112111165169410616840194831702287564015382836707036828004987732352711736668501408410613560469923068190921984654815616409510400682298637136752527138293327559178265268715532357391761335732795349934338457600186013587805654565429024648650991053985713042394094661314233500590943830575169370846885334057041576608254925515952002603013257184244301431955882764409038761215451220499454159388884633462377531286317290097821804417194968480751027699132966847089408096402398524892883938893580244926296036779518390058893730935053451152555161996564739190972850765743754854481801551195846573363344947134598193073272862995440168002673200081884978687006449639592537977079853730725797202669167395343771521499554340301546656515011309150168624996319995098524055702798127315489416190691012500530691206580716766272562149674360566596183483474761793532224587276347432956629835048640175513351805177478542163757882937102151904709540018099706828374935891998500263420005351589194923942084322178369426893982534051431648990164380553855814869876637546136711297907029837638150112497108410227094293593543177873039203231853362718538416181742806590008339417450341111291231382739577351321517882553546118927746463236126729259435884938493254296832001814356484731387579699837136994524144106805216845587922317820740486707643020120645222501083116263876612063027538353496401659609455085762526327358916006250009863719945969456979794829516696861458432852009578152231625270168228131331443904266458017139820502535988468447061818191655210398910191749647943123636108866286034551840068429058457626661037680341588494919539856542899241465465295844958738786000398442765912669671414986754727683212807450600260763166707424596068532093268033653240129951368827015267207395287421144563083453233503861180282107769818835095720920801432692043763789882423419505921753381471696919708486146516597930698686908313704207894458152968253429957622338162912655125849388580538879777503002034534885131323859329466683352172472582114116805618717091274277556132936124333882349453802993438743014200286804684984614481351298543935288362515547526060989489119373415538160310979094749356703191720899417083415038267539776726195992931613341245802081138350029086749994991172556405708804723603368425868649615984801663596023512631243094544458044230453365696834910068264116054836601959309640461909952710640760922408183282874309483274225734307908344425078849841319405573871149038701191841661182501320827916353636003688917146795895165318616488775258447401892694403268534522092529150242245600094227862510254415837811058779451078228516413734776356120450939268934170271795248992589001845073003128021711447929683810538777157466205551489927553582006291482781613683537869560502342463593470633626120553432783964456856348264961298440378157241222192892914933756357824340415590174548330781742248191244589470049937075387877394606058883889026927299952722792530548304286117976190882902838703166406174552690565847357027597625919786714097187894802868466059537983778087297646106665118630346207511071417928675397371804496499667792077684446515340884553315486429505119048662232307180992452179588468639013652908155493379153724912483673523294882832247897612417913233068579393284289463213105479109825596328643016962136111889632569596158367187471095406008030542348511812441552293820689914961215977307473262120338054334355249911318229020378513018388152294368501452187092221919173674864667796133168595062458319913174464374320031553248169670713464522403453561449351509701093477341773434206586931471967510924623411257849093042947289902342724563356873460807712490218285582704527190582484490832402065628692550799243537681022758650438990735687388698709525631372060112724994396143899330391211933378216615485977721786731039412895013918150095290514314224401610102697691006935578739133108356843115007707376412533762374307160491432820422625357924376233426851491633373821837891289036560071160102902204835006484590785760449184735957370207746884734607583549967495206696592972999804471368404460957096730094199255491100092598504949322646107372940471744332245892808088919810771913253342943834122685322323034698930534157564676775669795905229227157627469888426805301128236129732331842004183737293534402028757224660735244146393659834078652500384000621477911461695624218631893528694782254700453090392437542402716883932730107825633227185170094185317574771024889801894350629446803342946362780300279194037677166055409931314179554724354851052169951692748000807256575639505230542626474849459732559836036359660121664292998260450003440457451424522113324490844612857458461596865248843127469906163599388255179458234626003644590814549865609205595037249279610618265176005369731182110130027812277039121971545489701123670027202311873570991679380974872023617060413016286447265652360508189357472760686288992893904917411933602533038874142807346250520368347716188886840290476349148119864654611544327710069380475902883252815296738586719403369403426692720415052538270052566883486541575195608042182698450663219114292854379722781076854333898594255267487277434323799634872731999089955291637407155452564561708841337397820831759560716347060304482338642674546327445357176267346920844160808084519642561720674198623413001926246281749151119586141708765881626958492220101925678320178592844599294152516210710012685634503537138346715854946776649337830398144015418791434189214752554826913334545313425384994475415291409183842395745019112020313996910106429108773070592460644975426700674052063376924672720569541988125069558909657280138309338336915341328947563920995059420850564166057158493051608700744405503698878071913632970812963973438831114810740361227226212456852201926451267853017175977228683047723865459887359128714042224169021863180425496590180982019970488939064042302392163400729674413275262741095413344046526266352733455687994055527463580069520125319384257602336711196787972451445558254028210140360238756121595874622523621203782611715383266092703635866294092667783340898210439330345636230695821356047017963144444991666719489508521826426259096979086094749882227105101237858950436004000939979940233991251309291751160644253654821650238105384401764593699214625201623460599279985385243576526387349176925819358475391727067438668890473783965426501679413905474427207619031971300723158585702474239055006791759097597381674806099535875996245162089607840343769196347313919393185356633279863252224773746513421752153564124965241700949182485550439257180230791164836082872746375300147003461979635970201817240061203846106697907640515653373782604531827195909238867291857028104545413357169670671426708434918178720824831933044077223593191832442512411655065716468112350521836833821426171415630043836306063914990736869986618871531167865888103342551766471792880567990118845790619562163654217689672569137928858651843780355650018454386366942796931991494092455762832262436822946107584339251433956321204386141185327005179700728955737448042101048660092442377046520300415010021771588557880745871739304801195530575867576711121967673576351532066147152973317708088571363174202842110985171741995583571417394444349249424725638666758159229590141677000623351896031486221834501759888664175070033565295741030667336523532377104749407371036691477575828359429524446771207004616654400354224825116583761222206140119538554905289458427776155412058100182871882176978775116906320671869048648758078543604710232556525899408405567376297083015938561825754124149407722255399465378829149267988603913780872305025241370288349609810118091108412197832648550664821119100688218850942757161000776519097629850627583269576753841066722410838922400605327826625944083822446249057501145318169176396644159581038834754084071149782741998257051167051823499682653738035550414517371116126170814855843975197493072257268410674147149822685767249743166079653468251813194384630723372660618592918038816220515661218782688035293255718790471574643686295283095447836862009577532457828686549525454064645844657415265581497213102635280126346602521883826132966991508002846822364989541561918438484261576067376106854602283920180250206968277743741901314296373752553175701969052623486333107227267725534239893813403165615299608673210637994503616389447933860750183580750797282085379396267210214108162464969519167560012930142078205514051703894934075219093572880291513071234402569678578060714482291161377908069091688663838083760464876701824935444609134263456100904459401083503477090922061916028619834289136824336700256963857098991989771191727104919237870086691228991093133971233865553405090982357727252598698523514923224290614799422251483994994949751734162416038308133135908642583867490429575834662399463670086325226955390517189843383128337417120349918853225675711638969321115507081352222184601465702968204364047284698762918310974201725783876085044155931526944911262513150909390475532257945982791204243122307705732341817723661058295807170345063779820804969297127051181300862470713854276476288633058748442295567777449316267399093524624740240712953474967697290167447297811761861319531584593219673823747988179860887002161872817903644497239600025854641142685596225049356817391423383137306143409783339138942328700558724655056175391615824035045105171418508151140326376584807890556884727564107278266731367128599802035843759243737799669621089403655381821656941435081474761525898090711954323092458469529903594883856579905700589010217532673656929696443689088588971918789791963021463403079704594171229453616521568307819907972409345278695626824669719844588868220810115862410990183075306187480288680372905104835079550937367846062568752333491395406110403578483244506679325278329252557806249564418229104408102252085510233584730944298180154435500903712609174388525791727534166165332463644492897622458942219597235381639983195146729180700287279645696389619268243632504833279980692523917364217584572514285922978289058082092803775075731427192554786403379987899994989628933735952286251516217963516827858641269583448802620856422122589962172008017173189872303545245389988292874541675016145088072517106424826204356529034554175686450487770322705281321727029971354900747191570839840150963727915064877832372547359275633351560513006486075958811080313524057312843506687785601778083106400855820234191457195414809167263328094122663539058540689465776470012042715817914414820775234763404329466836095456804987820300354937591635004022741987185607875569500608634353215835420321697647763007329389507075983579014472963928283294530606842167462484017911704432004921632792429739645183550446867055470161891259726867233041483625713145535412590840046407862136185546378163934560258538811516371385132084589800831229945245568020007912610022704136162931268455418106806337928221843845682086207597872232009670962061376493038261078427257074534765704457515070118450818192988537438809730411333166131363681822278458534153600224870165474985809217870505649024206410172524925053683380604771812478950000107954329463832322934623946049648269991308749751293210681657017983123941904635778983531691215648915412983842166178192257680620411454770799270668546374975767226828777897797144520408335815122157861737348765142767256262984670743100896180189035370007175059779438836970417373551053031913413401306665565393322396065496872082380234323127802836248401785515118109269984036794547284761362322035885207269232162313708953896900509585297922074344905905771326381069939885423586503215039825707228460536149536237413997545090888527554957154678947449106003200804659817525744609686816428898722572778399647718575112608468949123673875945966073191758735981008262103741417356288286597605370953780349582249905154875974777122573011000771099070528502113092650614818863196544128424640117582399768401551915624277928179718793068835907152412279667730097631851261260757651821663901966795588825528592431186519783004636617948954371428617482678228089412525148672578773448743704969343023203515553365628237989658734623128251592862875221646009060490014989652873092355858314661719249441345788278551054022259570181071278260196447562099599212871630069781732792760713645439311287304337854756870286268247893821316465575656091766355129928171546366778563358920530537736009781502293325577208741608647043289553823848453684218655100436133729037944185971679040550228176571673372902514395264635780879423649386847713625405292133691793394005013627857638264058514005758501307241368297673200696935832414219324106585202324727391616316607545623614045158711112941814905231742826434913188184811964310893075484918699849168246821198195652664290472106532725783705881757609806117375750748145806158560998223517995937923428838311027400654293367780091521010431456865356483158168497899987354230245801147202103677159031328366138899246507131889315930994053960293758229588913190934005665509665570340996073170322668843800549643250733635719182499442116717437171899399703113559433957067578215297530511773922890931596621642120886956087224932213828205412682962973702239559167217545336910450693426897775446479189072404773593373608289439173159644316474656910238539825434658957844944007757162642134279604869197784543645119052658510724894890813103349453706213773618766883439049027759112401446851053042546929981073587561639640086067086116726990780499925935641208475576319136160751740047728952453149560334105215793999896471744732625633487313410087869767369605155274326306631357169341942324616719759753890211324199225369848905966891425514604158961053462298707605414309255320700143025384487087013810127042485688015972323858313903142287848197235870514583338789627272398488653637538706815399235208695777425947971016994087312243105494798415716632954882599794319992895702650499001498323737510016269000103843809784687196594571178116418987571512880609679150693274493359766316271810147598854921540529125933258850158171108512806386566405367027472638627639962425652903488887335266115130820929615146981936553492263166647871977507349055885643854433387459714344025186471404502887573567128609452173710032692938100842120924005879241737621994052722016859197259227077140310535081592542814406657610026246498937564737641002143308876992190703889174380533663500773976477513285119944698215954454773621341272992871941251086785405207818808357009562764030688524240991614814924148391896425699584673025104053756101721489699447891263513675494531184887019521540803997193468721778939667728369462538896482573875445522491165608318753800898702369002937990950662988566614895828651798960792758587164560422640826739015935665469137943624272088804493649499362337260828549070655470821849520002741190033153954792270755782493639730576291387099103130247887980501456449168124144197347794424188230402617042280219067755061483632831343785935122246310866184683731739819883633171416607575624847573866231186779962495222397974677088225732786493081739768490679473687870507606988675401557787286513269405699789827315005304997517578983270921434555155594315959613628211487041254360402892903914291988682123159718812527526358731696238265297470457509931132254019972052727533435122444283381699567099140991101412782410407685133582855219635707503944347984809555614579543830633003118995161979766575983922170983346488445108935505739171659007382728993729700283966280314625872532649728321784340063611465945395885854594407007508229811275353188510701992936093982165784157705835319445872769803280115433925972111599981849604672658829752970512297865026958241652723053321177276996368670926337647344270475508996115433005754357303953116640557031691655729742380413199937021387740889654776411261477300299963430239062407176115955764024937098235538191742820732811152138887729895765753587149907557550865912060436044039909332897765562857160959665259408895957195133209842525304744781870025973166847253411768866745221699443038013389999298235004343736607487986002985143610034872882743941382259510394812993911678066497464009112198751559284302813079613288786437081234605046870398143111011564765400141348229422702131234837647781035929715417225154714450987076599567409747928715197821626999148962857853312197106154075860373508897225446154838356116344879662383319395069187016167781115955671296787991867155948339789459840805625698809737160313099347847670804627009332314649126408464999678446262102865037816478663930961026406359168508585784849649530575767387455212693911457020785679923544333930987287684435870421719014538538347005602823836248570618492134056273130398914034998749180785369163008549001822256007823454483353240962878179760454892556356889383914194492890381548805392754450927586752262095485605783573367905624570489600551614924224553347845942930301248611138348342290823544109245587809053753342657815866644750421964326105318752022699531751706171911138155294126771752950866381759800592082697000783276598283035915156088148744478250737781379151414527065727567643091394295939472292134614140514099718061814828256851116283583296331684406196860251434461663371349691458446392954312217078705989995764508358002291557075701150694044452000028812490317953235864999907838539874686533953158198251965385842275760878053227432407108115405953995219840052979741618192702968480785154764806154140868747604454151342763537965155171387717608000686819943114963150486499629896475843512142269583288827148447272160361212650710350420392956950887328459664982134107713912040935537499176031244937463878966145207074064063412805671762185267656429884903884349533428388333644955443353676734633257200914831705610930460809143482643316727545556811300563077528029553986764549168600826571676809006271806048385825000874408450092823419315882792523922333501283908035154203539723245698465684726247112181423167849375804835205491237991622261324760107461717945191859246066732138411797987305431916138624796126683255981179257748956378564135930786425140716158645889770114421145190888173761134585750927694718632490640917602359603147939580583592148472280868800529707394250725665493670216217328324760310713616512081552217247164214701209799547299496520447693752929252088648854254444669864684765408366729543388359588246373110389271050669549651783996251484093887060319081092530126355173055085709567528703648003425058781314687703965913768578238050558701667294303887764107454130235002349929212248796037332410134834746830021823368886222144705716571937081645694909400606611659576802567703998349996272360304043194170144264066208091062036360836809390577481110105487083508143063587378537738430638674029111257352818952151837476669093289063974620384483857611901374863670204284724999715703037114043531499347706667203262361359648335414594844293865586829717607013706268514760916220755125984894001316312124249520633184902913367453152162278994283029700501664661539032451623637668639985940923889838295101281596793546613117449462466805430766122335993922614906432323178681960718239165325279348954874369843163854529365335754339140969932150158566537046636716540622829582105766769837064921344990457152804119499809831748098089519168715830928017508103652800589687344748684248981480322583442923774788214591144365738819406576242271638013884163399003866633533245169268564129659366602971597883887362938320503343427382024562436732157263492224458164622131318886023469994585201654480981509447594554812165140950809413115755517708819643638684452205112219039952840064790901207187484481739589001796631038688948138176404195977954114458901455945275538565336995458264667512756444797786603511980816095282062531114355010136953660738014336102252423358121767270081664827928919671901651151937377273608466442628274359670536233289035205398811427625740883375997308562051661772636597627792757815114796404779477234077683396954322720962970601311041833988933266243963229419552028710077783620346764725540645440377007596949540291977828424608816176516813943493821815652992859634424326890778983625363442257514688908083455367420317570683291733605555101648984075953279793664161374450073140323100335173374242724848462370258433986824671195178392090615894457227358909147200874853379932438391007196710061949630113210850922601741618573518435181014114795844038188189002250805030037500937252616000198609597530716017158663594848868099539931106871342778806904146182129619754511431870398427109262420310189962469887171563188732268060342574921003630347324871585062141767889928199268663306158066677239775991916538836703089089818708059417068173895946325302792035739234880509862194138617763086612239715699056209503811732874204943769674778373984514519589782722337714576001638039775932304907668205709420692584824268372893732976571554889289279504192674272668227917158851638851344433712300426257537887342548534079650896524654747446594277111293195601136164632436178927852958741523465705674456960044993820616252592066121222325995466670893132670743026552554590326637780423080885708658716951348146066456971940495823044900383303716889199811253282847252568140987994576103173930867019560847760993320725243317756245644308320173314854995570437397098100562133223223588733437770382829122479019182405614253790894151869117669532844704959157912318071829404029064147969876252220554785204958676052944819133635738054999248404738297108986748344066677657598181403134372655113321987693011001007467230260679423290376039827851850174169456978247536234869089886816667899034358571331841744237910349425418428031191233882351617478458461208416606785455259149974763524999443369762086807123404434086915976422441188243083006116088951057621725361835759584993230249309190426109479636400369986320311815391081728711524651481546930376105201963399078657968218860668891520358092320325013476700326381541052940547539595384113831811242462941267189531135611974638408673736167542779004512210502341181427689956431400841588314631964722188204641118879688352255434273997560448186075532353958475637168775987474053007311363853558314130810861763903269526086548033889324526685934588442851438939780652193268249293480879683057298585619942560419579592311915664964009604915460181636665588371392439955270006395753867210591401765702064502481235969843727273299133023006475299521640316012524293006309994035396099605139479984443869231599733895508434785207144815692864603395517157744255600627735656149687249718025370664161650451917597910395151827406703526691440486171064128508718792635732352858358404940526583178464879672106526115142002942263640149638270853628139761510982118120999050262601834103803634056710814565681113142399066602995048062297472149151253337533507483298466410098293392087171943651243431719642940809948466887083896321462717166967912469176544207738002793634919979260418098039729877065323433548052563428771568348276858905915597278518394762410197797156840882364202235601292959148993049257567436667760171224321536661608614287244064035227761969387791437542493576939351831328333215101540966153035388213083517186643451390505667049934759109370793735337733093326181414944920012355599465883136366518998162293466540694998684731877454864453563432376085822647567151585585650195641586911229662124988348458779876608869819795795496107064603171020741410229220295246856874395256759163863508899686961029963801936563180011172235099457994282101908724664183105621061966412849240666430633935973045200167370048468393291229838903269235860501899475951593303465376619050129638507745911393701471131841542788261090106252398519116201978436900957511074119588439827444534468634480110242326959664252503321663844773877214314294837593997581691407389943286780160164323474567559867204601471316980574300005111042910409962309158398111371022856295485969758765590253421924186098866187884614575940467283694000743044144948234199583805496391159019484293123745851983280517394550312606579166585104818366956329622844467786541890218930677147638582175224478685595882345105272912544507975075724953303314531377515205629917922217180699424826194370775964358543866743741691384632024764681918770696003025535551837292202212261724760362754971015059822422468270264011177222869404005757626770232592250186674764839231263788706011062629703921338463099465271630845526659335580888665040182366897613976789725545427372937487264513839451810077753490558058508340425260001542106321419589771918435490609875861825164364809165463819015562508760514964878068261614937349706773375186213217936560146391856837430473582327779688467485238509688593324860859916161060158551687315881916015873226524393038884442662415218737795786544191674496258032641742717206153613629349443438240824165613053214620132535272941359801536270903632993099812680236778245877517176420007449507398995268779127220701505822504867835852004991137700342579606999176517888451175035382724113579527558692811576741027625562351929949687162791835969799700181500619637939820244670221017112022005621591121220181389912289154676524977756153849004596562094251697491251081423146396086958010605003474155689442612980866575687437389954691851142904352953304468666096927999617081170934282483511338325715266796314927170138785527633221503561340318967404821155225079568646081318348382079576360137103257842649452139352453995650259420817248179638768807020145537347498129955118897369069847580938905542005632206236876509904941093848006055195555434851509212452769438607456088381555816387221679051494450077806763734229083137097562509668622710261848015179009499661607869682810982700207360206221740389053728992926049016328929467093291014387992801431763566663276564267600426932350476191956133873866596990943738970416788836087901543233495558288698184884353046220196161522142284428237568741764535805109813074022533945051428300223859740034920145506704580280540455583947776790116779741705642670415968185488653183489148533892287483404657424057898589034386358914947330190912850227944105291877202239627816950269095733709523113296007859337777794585835050631173199446251464434665416394680227942976725381149892317139707603806222812978401505699656011960793570433832341957369186408225378336126449746991568346306479768745054904918515530258747325700747762583393781671363273925089679399560630051160452200738966138155087825551503948191615123586095821680931831672931407814479809828038885919033040293826036114314055927635602718757718547387313450243152193279176486784591617754500967329968302566190868165978827326034259874338300657332743001567662561413402726450721030737559791686406381418915500718413548935886920405235857459061026478986882008191062983394339079049776512771463987046683260411827862109692802676896708352535031248721594227786833285864604149168790625269883163285568594137485305851805403542916565343606457636923843803872581102092094597785439309139396419213005189781622188710967424639287540608222574526779627522929830493595891174561369472929749054379175525013309011819563194798838735003478568987911194805105517640582851140660992120114715073879990059098999938173320981555917551491701249543773292041820214097207479185673040991226404562522896062444145100623966847928508130381653197004621450976192527937515847410127621837505560428615715248725838990821630970934700614663825737794218504928066490330121939259317697965240873192508627874112831419371357629515877823257277545117033660003240683460580582567739240030187739143818720586035052208514897426962252508733075765476763179836166342970142430981381836317252868504997905924584309752424383034439545816883075299150704576985136418558468398539075873690020244708587723925792391663536227736710731628705584768963204789340427805450916304922484999620203433356831388289365473398140779053507944981577267859279546764665897495034061126540249929977396648538115276180913186316361108399631784646566639801425234281725447594674092827551916836800928389701194120879533793364207239770057890979233302397544810218459261758905449284602091736515304071078390219993234816986064992200644031742497711094497808963186786365481864273886646011395547463744394377696531081844764765404665466814365089622012308035435576292026213273474765884464526822136805801137457841075947348998443822564320177571105356915990190239301716628574284624049260594609324173457273273499716614473587623484623924238057017779201671758781031089040541645364231514122323737385756153490903520847874306472949192467248379664116397403229750724639535728054170105223272192595122254403683507864001820143030889661394708670267757991908424841590904914683882499074905912617482996009881654296359798723833197198057184586378408878667056760684867512759309395016123609069614515933675432101278438497750838788288746470037100153711642397940774690003060709550560396459792363177859790362314636234476452107105305462421378635622259598589113915525474393414293532114858553421008428399068952490302959585173109214953466387331289302281297067580051584586476141385047071590441368627941350542125337209149491367566990257249364902325704330334153826912919472995319569736386266438255355389552309886338965214192026910436202275043449160726407844229969822818374336998620882681351621330481497027998578568249933606640585525148497205878012313293076815309413215727903238931587124087614699416994500257003627088156951043639711843324421909182702244259694834744347009127125949079600442801311774631103498342885682554701865634697342829942972572235179765540549750693786906531129142654558592412257663419999474603364438898507388999728725509484052775810290638795080723103935276610299300362201131786344175736210133988101639398646272831184489534829832164792430277333805001480618599404380038345685201707167413516319469538071030036861252097517545074084697159593404825182070895154350404361278763922480101614663811407421905712240771118474646953026520926652781522338222335280161715422832252246380637633666978299755881807835306376742604832549550787033405191673517427456244039470112895822270328115692293844550295894904203051547127381142721034739355035026379419218788855856138325854751736359060495102414581276575728076026996757010499114823600779650095765915722357176701394742599001486669515091656095167845876864016971991325810751848763347149347308723427776874746568813595296250152531695706420538616924815655716655942517475671063993527743179987198697034339540704573856564522340720891146532018622559080471103641043347220334427065439285823451211777588776760011617753265172379867095571680824493509566076322280046215142131098375456043951675499192107619613590605773918190939494061743655608513493238914381915718938550088322601331584484925375131478761954216222310994179872060941436267546242534804295083802018856416477547678972180841887429413370197221270249160562150423845181166004505084929801695731235386317249300660030160716787333322534579727955893714179493233322568761766494591583024545462144697603733001758109389418030392434584473423876833092848889812600297740879095597824746361003248833969189500644209395955228983460164447797376534275967837872883946941528130840314659286365700877481458146887137560194534955354313418698590080399192329275017567199253480284396529161383242880287718425807603210369086907396356674998430998473484307259265830256623881319618780639086815790340069556289905815488709768505502652682443661950573122237851353568766943553497285290778122276300498897828833661265649275711570485845914078802420574743824698795625771548983678981966680473315394998729180813811778485181463145000560635249364765100232047978793058114653979087567895558333091541064768111139701325494494024451401290818007246699153839898801289101406065105717138498786312290848568577022489106866015024549133124264212539082198681391489578184654735434188280439895793746639304489122165058823566059148583842369024182357763799370200163054029349393677128579396514951957196772956037921100159454373134476120524358822126454654076535073286009852789961888078844323547090820590479460552924447669300486498884891860054382211891176682132219234971389162394006632629343538979258097311255791072721115452542770523265636267378302823475305161105772957832734011749286744122112671873266123463982879127359315519254236442178114042064891419078674996855680968364493310356155964933436091141492987116526441886342533959786324547507198225183545063666870628186619322002477849753692058618799209693232231812020770672189614526335074348887413738030067468687956410823893100498266369520816370777224141191177654687810641553832783904490955809212895856196989700679053982646455820490854780507272277784472511698036365674475622991526635655589403049513693171360419287272013484735524584831146539954935588235284317193310413425905055783208214401842664634916438607804108978989389460168099182023609048307528731105130837306371190310111566937119243365789382144110561254585410414361046540208304842252887319337657987178486022161029073449854469343463849465061731756982785023103997746781380123848307154669717232546266830845077257872414629694702672242662183910676261389207165588998995303223570128167583648246558098262842023071653653339248398915232645549546072689868152509695533317233693275810843855554903105992979671415653184950322928562519338053387090612118345901470495569003416205086233166920353415663680961871316569061313514777722080092947704458157267435198345818364710666104981799093173981838458027348230883397703499798148456306582599238559795366296256463438298045739666970600458447579071075137654299450249363653285352093944553193297528438525997045647456543592547110518007530162777265507701651860661099052049504856823172474732606010159021909821995333408657718552479045076375507138184100417076608826563371836505814575822279337186894085423397588550048094508454007316109962000089956044584106107068663103679116580802451325471611367035454003510632543134916835696671014505068343052515139449844972254781072244210078496348321431473130815569942896214303173975920974869619037677268971586229488164770823579839239501548523910123564814778441610865552495718270744309678749768608876876170533590661620869536584437571183447907275655517928822965750352902796408558499174042090284701924505051181570443038828269761092695449368544268848794595191423039280244434075021895379279441962341408395984301985725300420138601988116962623555648125618473923114347812350453803732713863611901600459686415760581098477200960768292362793746663557361900764054247491064517730820037693306696213594395165539197408252467211200369468607437861224823042228911937935649396743751715764583481777971713018359854858060046537482387445213317242593826340476907065391258752654674325992150593579255398065037200632553697554619500577645279380903828424842395608749751218143752227988123930679548720276314252566494655310336358586595779555038670483197153670116729009120417474932663458748561649754769425463769259585240238458932332348563066373909477595829703954407128359364801621664580725585879274433323887745401837585205733892122006809356183429651960671833759584392170098565008055455672288585854083130514893099789397575754599337981559213574296988613132601143370548309967722466941474772775941398848884051759812444002914786431799318700601103703804811030439617113780775161978112737270623162375099696201503180712716759349735799117149066441550145952629406404623899017700769760516179302594883022841427052668172304678122938904571736207022091615178871741420127495371118913029560809093783977701668254433407408039555808040428095368872408145771157019755756491962049724648450010958391083278086999839474172420379786021371208031440616207069015455241999362271814543698394737200356212932138704197608341209149514816771399667157163140069829648444604443717434193196074713543508397480128442513952616121101026558214793151533949193153102129036989395700386560885966368529427458770079422606604116069406376963990056158336582649532587191102474103404199853321232050230622911564664821644332401803197278454610956008359111265965125797900600185366141140784573239443637489781350671289746142314403009700225250066294411341309436032264334310208788705032952891876943378926542363739899408096096893503776036976710557106182033911757238812043674454683903579347148758996740504167802226775277534478411716882624381531194131869140890370586820038201799778568771415704951130929572581412987764280081689869446858487563464032629602622048377852837071403386635341259789900025249520448558137443235088719730284020604978574505314986534975923084466087175655535184262497207746633082299279655806075568431410791414725511323682810297915241923094988921143252250615146170859048024154521400957349532311231519305230345989254485409836376537835502167708036978422875940538520075964291894713095789727218962802657319334733224144413959392335151425932954823774756859745298361007485067268938634859876914192765485594635453675547977056411636561851960749218803672235322103644174953853801218819167233338865937028745181098413274133728711022907160676406012711666304500731292394586502138017605410540111406826891445886645803833137402750256276299980788408305890009107422422404427190588989461936984329607559968520638686174320637199386867863116756516987951695225305339453088232014903650957770385514262097937048895613675607166664248412682823188524596071882430680360469710902260206408463867723427259239865684772740629592272696628554387963168064608401771776173151229887497714127875204806517476123725085589389306492885791670406687302977999683938401121352441765759916766256503371812453648840100436294900829739341612396400035333970501709275176675457498827288861430159286928150112333913285316360605438605705934067905590489532973820472633051998785996054270817026585651765552070677640036131452566113617043539937306227446954110113127189087007880998015386355471899618569040863771098289760991271143888172030191998226450923695310611433247166892593649873868524125434895945399880209677788805004231420220344145492657336014713764066832924658161089535271688179572666734961704481451813767214028900762952990547087337932771394478067638333580637881150562992368407733524457518359650808975861220510599154858482073200768567930528249006807584589020744175879041231418853677297012820514929251232224551320505542471164622287288368218325738125697014200681335736559143514484680048626599251603519448788586222310772736485840794324959030180861664578178805355814922713805196706836805392350161574844437219612383367048346850541608020313445352101079782091101937384322044738180548900682691446269818273420292116725184663798975091164552767364830952404861631236868648920485568018343627390434132459955303294207955647898860771613187351675924959713186994598412164457834044374943902402093897091781463039979363542729082220636448332749434697668971369059235874605963726309831962633306376825712634417228316634705332503711757314279836030354821502916702073734099942051860939261728937599124315682778753678454801730781976442026693820381948386947538576997914779716827263943912177517237736042927488823363972782613568504485719003165156555601204421146534643035983790048224958358842466150241158101962680126239750956516870505033180257005253398419627509850340265013286154963579453308552828724383975403579402613578899266658563600646967755566700211809377792882909574274973227269961932293719888824230474870307228517978166488763332800497213747373361732504939062536117661113516221170725974428311525215963751731399669419648498125565971894336663087911212510049777382811903831968704604074733619212099032940550342455335244280767572476224851605559780252951686389876019662613272069131017551342339878182135869217609321751946544323824379372450210978432937027144291506895073463861545790770926206234358003537413545430146372529963499336517652207523685497258824798006703548136771939439498370019637846908280263325161217014695944186607624711505101136711756501795638257844500725414498401977201805854523833008863595216878723708008819156004200907254192055171469077261919990255601134397869440919705356471056867547902111799311119583800648798550904924327122596216467643924825112157444788888694853176359393513812651561080348102584986494156497221357517836649440927902093787687391746891479369491222654530940126869226299812443380594630474207725942196201965398895974980992087538494454449332497096662321965814911091407523043488230463703183486927957089911213150754794565435331301170371537722845782108108693656225793577063547326486210930262141081316518391638082472527744360900060021525378540563336725248952845134132700989332117389174829375296412694034416420922843131722151078999957969524762982156138011888293564334674817640342403250913472544851395053314033001999505176616872581654782932103111456944069700634637464784183408851551338515178217525028369494278619209054016812440172003636429480454246856438595743971727054645900653276537656760149800348340596956836880394274966281691179835173580041016391972759476100953675026872570903930774143419492231395177741613513253871870075786935144768790567478719528804372968330083285495536631013565087600102697485112238271748372069365877016902591475264703963017962329173666483956553699284009294407823516648460794010075306143126938778899988224920424959761892961315406565844476817532403998658510510948457631609667655236474315511315871296477002884478008635232374522112383324536352542819190803913451764275486798770764028858663524178790808914833667002656878660776837187192887775151467594217341604624230823350882607195188231349302191537439853230723832601869433275257001865394841953645013902456564359998535906483519676491276049135104473899485151456166570371599897624107043952661215836358358657575555632421202268911523374247251868656316346538797087895520462318619757894137191563042903555894351551931143993231500978891815117633618999921547157338172246596229189123364396155756187245317180391188737142259503909025123981736908459130168095931083087825786749052589476367450656976815240825293511572645321404817852151794973747699625465817595486012140102088602727411246074420812611934542789135052796442541285365140930053539999061784431153262041689193504745526021236846676743398607935926355304853658678995930667455683058493859480070075737084305881993424330284781470417693112732210913171244205302190244621244792537448221518858977731247120237314508425147026525137145252677930660630460249480993803868571991589392897077155337321449351263389580942560277624785938413592503903827331327706013167146466380413831015747719084056101468091672590530742421571869317724301620565488849286475721659045979648784723615055360780378669980322752421008005562465950637640447773708945152394834777759039759637780296847721517536793756605111247039389391889928080208670422683407081725310950620797781635281331509604956008470827804698492862704791441961128580911573610884829573185818779870909635878550651976885810156899109506963323379201296763469035513561886622265913028295043959099419489022907612998230183568359381527380537599980995720190129133682020071359739777863391217200974599015525564025966009822178744122942844731129227535440441750464208434375233878650896591998749958706356291865543891095989518550476408910091371893492423040830295688198170882026053767012791012244341995113451093131638160188543239174937520249794373243302846221489524310987489855199132778556810925559131954647702215699871205272013188966889806886206891461011465686729032408798372764619039966360204888006807292806841944031336699113771573917306167023021710673901255057752844456496409699991911066065552956293643708596130251570003491927204063382840823365094335829935912633711583173562869129772870207170292753334045818436601979228951724124591149719843044157201298757146319682058327787422642045466138841756540889494286064830362268082213638694101059238018979595317150056837771896012183440250713970044555518962480958360965148019226001191199803651118447090701684693003679228627338578082400295687233190334309604189400221346041597132742767840405336923265869434771407810532000015770162657516275418691056806923218356226803565922523220471426749066630168809731475381628745990133236686439155789851988657990184474963916155720024645170084718322163542477665347548099580334466139941696371653388654430563731122661590364500073883843860690469873625505508308285225422444705951311049156503420951851783879380870151254090968871997732687116892956753015076436598875858908565606580693142470559700268756182044278811275205581433556451775629995465560769848544184682628885782181454816746212471779260790946297970635836601685445331391957238213559485807666522856663667696558903597497748934136574452120564831744433204132433544399998605573154198604737381677925486926185647231639842486314795438012236929917867144668765194792407652675413399311573478367223249662073300548021243209808116591921243368665553242258372885271573996049354351084614006894079556097410975444038166961817170004814793162913652995937275340750150262474525584529813102740823609487552802429677481597259968066115375053541535751214524493517191522635666042132055884185513854456228572447080705159957858578909681237696573569969685199094595969171576179244212954932521439607407168232388033167302543717570021878861683722459941809404680119638481511921569257314565483129351985308852789967272353867209070200487514319237019124804866283670404940808753903722482142144972761412609569227276723593170516971162900349969305743262393793346341364462714249680498364356491749058379292801066269417129532907405840442728878564961660076430295365608384852795209804171493402604083170949130110439696215282594509999471634514151767482066559436369567381039218114279126379570175997663027897402408031171088738838922614799772868024082722827434679884303448426599532249885180762786851318598883039501902846398207491426525373576522646385486595377322750833536168889963644825972154031184554325250884481161661256904395015169859946905131548266050412817882568549745257012217661038210391966816067472900078540024255661460920817605300821096966772990020072127306286551308467540439962203300580640747353543796736642801572518935785873397626714820472670466663450254542846163550295485954363597841164068500172178081487949343607649245446458730998587873699964000146645901698909566887895960974608087011234063315668528715743906000758758856882335818750172399379559931384092152216215089244378009443095201107761399805345784000878402836796750220809118559845050167224890593519403942153757124523632451274099739751926954890800792712016509265626095478701759105687440644396004475040775166963914015384276337270884168762170622730165325261822123219629396569488799461820581407588838051389908790330299046305526503402346233593636052301820983801664908521811251184612449010807679252665513722283652073309668754783098055539588378968692962973437267460076285116308656666916127306635904540940446085359622950848888726203115249005683172164717946875724114849869202357269318414156354443254943311709755397798129591931989074783714445102732480119481819894121116275733215115068578223653414934200444748010410550848434582587755518307693791869686725197569662627369298080524015601882738960524903744354248850498768230426243620475343668288971826702577409599462937532357487356205950361071719513586666153837980216762989626307729197875373726478470204565780683677863592048849051055202874242957534621986677750872230708185999878419392478437326847710791122229046867050454099100610533547544347723709650041703273792998948889271025016532501012916439069445076425389627588817205702086279615804573557543467335289120471473070266708284054016284571089776667889693887621359866283076497848193766136253440720664432668053765032259080381175383424011672626674768703536985408980648896656677411190909516194243709347744455484822850520781577468390758951900602149516388218070478036365895456698449247839468523098856002285274940267366336863620263924587843380032873649506423226993149736596453273967045229105741121251892216362649748456213326265386318188334788807199915535324018331034769418513425329860774849700089991528369712250474755240461839137606172827206546576403217740232323852408686857980658566318800701734109297147924640570906971496945959588708146355993424517683592034873579415666780502310288522179442987371509438715130513931481531858117366816230789816264864928442129608396436138924028680264674649333686691103970216960095183028342457636824013388958608823371033401558745677982885764538327430447469973850255584406774939078193355234784129236284167619890340654287634888341931644422488653918415253034311041097422610385733551374393056901968429383021835202228039438744557462412923506423658478614464279928819875075527141541085848815737139817357200086652971748604482320466740690740442438237512914156461099876728811250139399465654306305936511972376779812946779561440077098993329304392368084322839519476837137078453311860046218763132671687797644333589085545395404145388839341195591020119386200977675258104968809541175259362473170560891717602212279971939313223818123929303243652181019275145212402725795347628008384955813039425893222439669419251571988329666834525788059990638326399962816153961271873091101143849718872879374038669869762803772591553081852675655448151312832565439848168477693372008317335657922417350469480996046657901441684848226636913315710872570186050145843865402989425049326423370912110838969558730127721197091336865724283444386720830243993948932960730763460436314259726203235989924196692906005872406638165216270993729427779518903164945979955571620302994484048757744686200673579151989078694816078315002744136391639191053583233452528176292424084521046303126156325238726356812310839320992796517839216236174261173348091708196580387889834375094098843515002755645211771729915932960529400878049780142301911974681831076181695878867534658843811046111086888805598850864339021471505014079643785857019902492663928464898520536546550345896722456402569833248329107190516655887998431894935596662139067967164955199132712019614009888808743595393657951966236448342098125256147535595785215682711482680853932744299803025205748563148836158570925727445454704405138547004286278850751635221897360411985353517238520229625915492606923720662951093865605991902668970290260420122035414699873168816152768592177772711881499126676483339856571593440146705247344743087562601506055679212084202246347993373385504215304035204103180508855136785698264478271742148238498099520325402366700993848468049929359196356041166365638982265330202416609142656457041559506037567325393720886970435457687953321762097054559672874715953311242432582948349058856692737734712836743131929136118019882220260376570499452587423658673049672217187822035253647708018407210636474263193081105510486742691052114788717443497184693992263335697448600815185420169813225039229281963545517365581029689766065828790472904600709297554141496660661357054000659844868019154159855145315742975472722743988688986396375262729080204579668348935923579183555022757921611995605918165393964300776905113060974088627177348041825307397267391020350708040997055002195212403257002129870434937918334686660800725500730435757207360065359017730110569242881448444256998165094429353238697328281662069937166916215301233552846357413810928780548993518332721442562381060202846681488912363661915492135101455927103093903333146719673363153996807046020473917715814419877905481792985588867853215677264052544939502315045747283144229900411887072355401428225674970141185028496774124133712826896010680590040249499431404238948468454489194778679528593274929012776128660207860176556461203606349523155057112752459661009454299755360360945619492200212176587993812874821878443234425377498101894846122107016767399852193417163712644612933338227119777371573477860107037101556923854772182029721370493591927181026790543020979206745659376483623977672499788021191649040492736593928016412562578337819022312630209731638495510953020227831513665464694088853447702924544370418695666218400757246750942596974345605014630295784540165145185923554911920738695049981611846539243177340131493803034430566012508541730249786421189554633962360072716301696067221420108739075932041007903551346691962252180615131587888235096568582577952103814739817674625854602115181633551260606523649871494248253067135328802447435162328864588415697167997983137618208016492160327293375561341818878079781588283866358849273787270688092338895927502098696036280910467039223864104466970178863379030226635268384431368993542415270084012525810529915769492177323054551178939656897935549323681640671682273515618285693665720713769630961134475434181525022987116601915148328785631477348133489047491795487181241453598202376810235776658897360162818797724983752396232970787920711989601770702676053962993076294771834389376467703091254695271808168059933482397279330358405357706253756647953570018391719232939170107997477642585021681244669508774260654435049390942044347295895632566338491374390232236966371729388123362704450021023749056704044605978956431611844834782101565599312174187731260273563975067139915380220466250277385923338652376787521054639906899062162818498258874671559626470193335675027451431505344772165882683206647271440756663663003320403888440184120859187036956427301303203714030517608636529975005795059665025340742351880442036870184327861763010126226594877571010537364462847832731255216689686598213641231206525294945881857949890498692409992534793954925517739861891841751909280400445310811267135059221753010904247114626384933183077847992280368834511469040927617457097525180838353910314824921184208759223887799446282581316106751940731163166924359768091767897380834891129225181549535839646505149708682240056055369707344615662637014257068561007566521839964315760549562151817587204527914505861197307706494302823799755056476162501979134928041717326831980608618717305695548370267724232500390848814853929389703643691400089641148883575926048889690663897027446523708427153283881533473046335854358171268857135483925434641700216917082564443716670423656485642518084355421117004782920035218955474042327250844206587408862635698792438566223343560510444537989968246369275349863575654206398266670427355704934903460066502691362888105339226270478274333392516146704423347943856330142307329802974363035977964479848886171959185624369008099055125800352867049442163564074106562582754963921403864619821854718594069557341908609934696415330034428097863701430236827715916678673039276985420453636787697430136941171754579982127888901311111405133522485550705550298901222837576757048197442738704638941808498956391398452186036231969220957897165738453333328141674970039542045851347264371059221843218398888370471689008209915630920175683144463005644968296096403615785120606976325530750787045491850816717618098011146912469593703105052413747642508982147602114540399215207732816848801926505056103089697862540576877963326730400435695464317814351303121969028541046414905583952509780966471831576387610569285517587662390200787893789217690808500446182735762003144253501043457822508968749324041558193657158001680640885290222686995190593411327601623003465091156958502328604460496519005073616068954473006838411087556361162385301066201712888139467171289596105322815976298848389876799429491212057231532890760829728179694496738697420048136978323520035611835874931111312614702761930845884337818928131265687847881910668909885402076896872812780191930579650378640537190053934975496828991701493640138763677007901024134174574996293329298860157489228310763264771432099783819407794400860258364956891610175562003825608983597966728916334940731860608577676193546840139768806998279897544204341356327079584671731080073521202529182985443891739293838805789809751284089400046474644432326773100432255324619186157743671443395835084880914574263253758351284146789872738567274029786270210995679092791155839869138821572147609134675363920257203876236270870585765202684691437465754303423529932321914626059179221818509409751153518768434194810821591213607479578329547116422923859771092163001726927264258072273510982565322987321554537826470880194334589670551471760044444981495674686932532477986568087421255582938618560694275385310907230577756804182182200249218728524670413410526577841066056320056751251194378415178525986826098681246202400246698689242395220565440918117087603744719218055217276384288679251711562667835094897999697903273657515363975436678936043941372853564836893130741664138175484837030479589771767008377967885794712502985642455840845715848390229587954030933781441208088404109214990978076381067140565135194547512395033576383062723081015029836271205851711404369618537184893471991401048558561588995758340924311705798267340812337776585487094663871513984236297415140140984692148028855619158364485970456358596611177763273603704250459658758267709613484052098097488494759464831344550445907473705309129667210783558091418072426760030466372467566491702955480611228384761224792823850704297426874742382697987114978120652494862452503622030612714258512924798188120800394983399606865062533693708954989033091523778048887716954563895838539200280967094867279874225214577813278481204899064996261375449501126896010075096930880706496358853684170425083546260939437745635794018725291277571216629469465763047872858091961746792085092019870414397105450656028043392719781196631507220973345096374067941685968094419962252888261297879646540223295253214631247509743322841357878785770681877722419375027905908587076642610715736009578180506340538038986176992044988730593330629558165465583597234799744871711972882670660519009974999238309249755796804588183509179858966010451877017068016304555628729424748989138807981253714280044367518927106267315579980042971094717531295487761533535905273064854967069467132205322807410099314174763236517883956612159608999178271177708544183433933592540782023785858801343395043505098150723109316120616184694077044308451380001512674531049652736576172435786755037098724660457395145717198589326780350092829401214356073686297878083780704712639712243269732844745735449375672525721983375354004287712865213460693601308709089497484763990907957410915711929569575596358741204505994206742864695736513436393814076502036440807897793329040980386094545463282068075186554711527643676224156691218927050676196222642166996059492714994658786770771053333770358169534747804592951123991942474967183506111453393715550451688057694040249303519675203999257232915717611036728516041266650667017101830275565174027610883938832320044244793208940653350162366247707196541732037863937266319114270989866969227340778112736810057224754540943313343947857126806202239303901659899101447896229095884244396103663536948894189329179204267001109494630181758660996382845315213131974137087295664407935951366784943523734465219394223594876684054098693615662416555300757385782906392303222770944676060037905066062220180734397789837934214096144133247460620273022572283159970370511017820877490495322563507150914384717704033261960983547645043513379109187725702610401515276516178744726043067749586999629310369462179629666855811152505393557519242863642280473709624799180846198860800723413484838406135789904619412987447250806341913279162343108490765529700945128895743691478360377511051808964685529479850280885897799847836099920414343235307857808851721708006103825500853367475403448999350865115268441947856911928854096949047923447821114595746328513354614973698099292868701570324921435698277392266119078982867634616221630105073024626618024214268661143706480518613261393792572077808601997542796510670886434542556904031620611659635097638845589852985937060090363414050894897842190099599703416437968348818014204558114218061272737082987314777084191959515976491144858580653842530348320316775203093041502724716626586947924652103129631870223393485801851283013359712450066230933904676968773851156260004753670350922741848047644457249109045934919890313697401975115975455519633606829630579799368391111252631531069879402804901825346846914306178021759587691704732434077098855975593431572936336348823138696640200371350064609806829915399529340612154271457042117995337506432097787533215955068917620358107430447433590611087242045035640316233659018984957871425380185521439548898151421997650160091607674323478748341125385006482240034333982336438355451174494002341897666695521170565113185192449035598768762872778891064883077028194477761515698774762718735368249597146389780885652010406002559107543037900190550646975992535053719474401115939484135438394449215458830177873361324791630337697050755666489862545850836806870559078700243742842378830851384967279097287237169276099262552297829267295599918386090830679241255366883970010909310180732735972975392656785418808096397177789876384260836209415461292367741876164352962285947087662546786516457442454886078465687844411684751549524696474967348163466553735976536551630071540093759807476394870417763627264916256312704241255419477861234263040516099413688878643452726634379780294590451583229168042277230757275681601996057022812490385102458830482527446041458896610705565860796657601518802879763620549744804048280746909084926834498108014916493635548762802400021311365850908994779515033095051279019031941675899856910404712131825191472660685380039609547910818473396784369701887204705110730463280880915943218791249899070630596965445115309306774588002790835729142744052262143996896039158955031574489955913424013766794778971918749816630174553028378784486847767057130428451236629248972147248950115049758117746300354344129313093390558415261152100411736035661359057901881497524736001318443404315652606082350208250590388343305953145746622686051224061775249403369594367647409030309314832691486302317841594051298066368284623316675093350449406601546506477904740005953018573181144927803378337263384346213910049468376034246315020443061733094647444321098430066154731134224841057899356978686651626239028299217399525750659673304371670578830632234569756722135673133650791279531052473271467741997321365772326763151644482601164175892236799727991150842174241494603901855142852411889797736916863919415445987699542150381589189417810685192463983227372292213479548871273542209365133067437878521543603160954810561367062509750877830312410233936680107951663594454722127518333385301665990211991071397350723131419214698414974710236684806673711303216163834987285639289984954691461872900320270686999958316595501990470321579684043802342644487377207403781472775695872853945578093040487649319410098525384144316509507332256785425671544329193236141246821531549987001332437500298541896803078913196737364922491586752066598350392941641066776854172692229351896028940123151819658438547498420825683689670886496743893887880964529273449237292537489005909632554912531764369238572789623380439224019925698611138564081678786541403668598510586847270806570083633642971494657256992138373609465007334705276030659444111742722862803516795650936718815624363637181898944554237697367708774634372851424430918529443746612056716986019612267118872838271618772881668822038753704372734725016818595715277864369704124385968268414327178538240515595936858931227958609484886188819090800452934853777126045159018448947655034244830373365439455397880316480195842191828145528253666741179787238602698369440934188867332066051177712787223064098526189591253562478134369547530762804903469508485944461087865605309719539351109875088113420995674584528245456442660018663025330493725829711027683207516980598481849832347358116616816334506320038284800356185783612606343648147158956119420265422439542008034394423905926835134416972973870561389720438059730491273062906058323994169904414892716863618735115017230997624627498114038852971867706619771277174605355052473036806918060488521343377941185128127209293512789829852457272962342424426320743027621173286410236661092284532306487184508211233721259804648417593901452235329162036207706638849729901454095407425187963586697203977514189401670497838121598957074302794522833462689717250473780459387599005334771214205557535498678438998481897394565187912386434661761425979296641501050884571846738109542708613933172573128483948386447330802659812080630481408858571897772442042603361852332753367373094870027812338433202095271742838367332349881372803198094919927446025725371142813208483160392595541285039211184923034465299952417918373374128251067968491735140007348455621430825397948823487373141062353666185802030150225804996478750833777397987232506336326203012837664059178387769759303826910882656670618255639497848160988946337820014153770628750662844267298693519764542483146349241221660115687529282262155634978583422930149618596344398973100702109598062509453687715356468774468533153455459532916759601427024856343051834691447773028855821513138055829001760588036497994667571043504990220217008566635413073306934432392021030438769330175765403254245539938127923993991292343737692272923586614165023321882435495730949172303058404590798167532358011870544174573738249123498116471589357497097023477730671901306984737833347479034661206121321591366933769676792438863263379567204537975725269247655531971332150709620443089458839183516994721456709716549506418425654361448109126210955156595466575836970269717764953541746471212724355424284068768852928278934312840449971461413332546593907436848218909894302118314858682167639536498337198326153230293743086676981361526372783514255538392288561868243928557808969798957710430636669025391368359932904037193351520719656046590606149510578754369225810146579415486705518540269244399002334421504621906778717844828351479210285494068917368768535290756051143985610400586137468553061396326775096907017235182781306349394883677058217994231385433424191724387635014486421291107201958951678146873818730044911195064246069324800480242482741887902250863951050499779001996446639986631691888096141540961667985696608310858261620208406241457267438705517908579516244575058006272016116156908652185961358649015222826698729905145099724796354582202252111528222693329302817645067704680900611321324683581621860919631099798755307362384903184045302303400783409203051227908162050973113286497866438556199480201243913570029596690183364758439696807263797736669624675205695126142268043744483328861737787376459729303216923405851358789950131987596224557789447991397959596204840884644460558435931409135031627190027862430620320635395722172134621475317186550386620252965998822973718800491768567241601531299206515954116781677452601437353894910593197774702806274987131976558472905260901215327604846353239407587338278579106834340194631573584017335193599820075781274198265680541256052955891169325791479496308778677731736523006710861922906537375957533961572281343065210231366788788095569956535347227002585939753963616950229390584988207633791367521497454292645931687027521718715358273178075269102466887831421350943919319995262369057509591149851680494330480043058936521132280777593498589694310410717505964756519553328003754160931805211995278988488933559708950638260809829751568249454682921718801952668935393086594082530307393325900350654423453807999914818411423073017283783218658198839903335786089023312069753195182728064046239685711007724149009336837931942582537186725360784226880201773835048900064330185803867087025979389353955021908319560149611601219895859184872532196043350845225924331616748753549230772355005552899342940470777720390935953480983406836005166971113156316919193749953240616007891755341880977519373920126483481494343960240647186121540705027317086151510481931690726705219534923419142281557561579565620022672331766750190414119895423799691692782217428797675635599181431189311873154698371835594073712907030931439173028393296133145359619793399392801342360616829594599229104790782223961935390574830661481695743135192018683799351722283544285357384816985587572542802023101282792173284224868801022620936546659255678563491552583236799464637946039421952604904339138342487869553577609737357321879506169365625245994769347822419723076403594917628506045987085936893338729528452549018085720992187765883103806272592589480412000026735354482742647708026711704946073225657858261157262703638585389738911244301493843109934100851687295629385659974921704233701848605512739236675391281365673950479089524991843549132727557607638148018115838697039682439897559539320605247380268091503691705307408649549541420306173711196558044634954639264630394249848297813337373349264374488005899734361242422570466120489983778840267829506225486796672796923734895572107873945479635081095198181343476060482340886728957136255990326521278073949279123942963053854488828142531471582358642332004726851320727949400901214346513164327297185688445192940270745538509859795501311379214665481392844679023621471196680963141922722686163603002490908472638919716373653964001982582191402110599628141346161486193818546007149962055789306685726873054484941431216312758972911047849070035494692133069946745970737936505797617036936032562498858201159959458406248032875166580010314803435452788139510869714380095066335472192562238096286790116432458752564261777415478430693315575285113762620428967183734133723960974566786493635232699876536724354933943201185950978292683054116353651995872780023352441197221913893539584280128141018329623462692528926697787806643477976432954537565466894258041203687584898260109638549325714291639496736719888063708671896297484688742917632126518251048676667945338802741268987981970959327718972001402741581855970427740955808275413021702993458249303150914529627995633621383464878548125438998784059619027625075944641733892033068506377091655005833336639291859182447843081011006681629644954623261923810031345192579396802583768517906849675856440378355440267560438928256238767571498637322528944835703194239757702262564750025949870677770109971144344220456805227039364542444327517390780708369930082482831073395406720838800239834466235731824980054301579669630002275694029557118119098992727093135782000076333896133426167887677202880382036362228727150809588318223806342537531087568170006434976559084426339403288955137083561407072725199453747287572975083749415901666665877388036353383350177778784742190357213918830666553921051625812216008032151982968228401770647918005784784667869689542305568275422445479339495243049507775456029038162951211185053720708567641526551740799579803231851757684225417131171907731901260786643384940338444672879523759817213390042610998101925495824610603276256711403044515640392511383588828790516251782049041484961949890792308181030418686452680126519192306460991737026431582868499163800393058136787693458178151727577002588289256095602106898261566446256063501094979938761874934590099553165708429804941666988076189664304545198426481610515767623196634092710849783915098647700855551224372273047595285256620996290577984845680984556068004422609375363735411957237414820544642516360424689260125421440600794580197236191333132823992954267719650529880203406579349602535220436460735492096779807657150667643679376759249468104725541907579613447137348747763588623376509997380180900543096817930496762005995952940212366463962551847644023709712429198828329762884450175944254105354322492457214410398885369142697247614635652317588564119911307140367086292603454243081508377026931686218826004078205039841344411029571858296273435098923793290491557810002950874544453348833914245337026350358608790437141315384726360325669399707204314895543498591072210104725038927554062391524089620566429150655706797219099359347789848266545267609187934292286968987976113346150931254253752371952543065158717926917745638883243447139591897829183424137142168995380478422101945535286671281630147482863464245604226703093402777797298542230822630583493218568008069221753855916286630255893512473644156618376262410178687091226626502164360629277429640212950583267450054748653229295961372590745988145204929226974114853583343599116962865382511415829531635864144650294584992360484630905385996499756747622284068005830120167502854933435841688978749262236182425031501488012276030132804547134840805223511962174208706619321087183524801626748012967067472077686803216968169262020570198494908848484186149748650835390331772129886675623940676129470728739705036349784095717441137553648154465581954511401842468290399394412703134800810175739658136812045645769032688252259698035393173280919470788999622308140695734621130653482800878623459194766003429563147896636238270542106534536396092216615535452809741482660800522777615539620582087150826366360010961025736657510621797979120750097348922234910259731276900224699324443202464461227280843037581154119373352659809986912210784848468037372165890634370193052430995193377520385444353685721002393515622403713774021722713122019856560867919678619531563997204200136446815778718945233063814940783236335694918741051277897375864222836267808892699680859314785012794064014332996608081220149121655724933273355147333722050733105009562679497377621038787468970220248395391985892022731874267154237097778482498861491655544525332692759642031077979702581688932838491425487162140595752431799549195140513623246169160204093448386828070076302245130880749351865204583504717235496787260832339687172667979699897618615203501103638743397142319459948031106066937305539110210406797422491269997545005330402605283212752584669810938353591294471507522393237876145154512109959184245761899256579859829455744995901438824032993842917537522707032298051070339741108102232915503043540130411808455770358306027518337611986128683466480565438632774869384228475023225051670437114236423753206190895012577592903672007357739629516795530597734243465188844197189692552626812369195476692945300107733702661535045673198142771439871385946220164910873989361945694092618546416329342361852947828434607283827851068253178363142391265477724795574586198357452689247181024798954226848362212834499225366468107870426155473897775029582369100732793057565559907118859329520670617832143294245431266256228365918629107778451615865246396978112855949621705201603871873283486069101174640686780562843159961708752452225348686305965222463390725665973311449883580401001259227851542693373766462858142603309999151069999146845835463872648429687149662870129969954191519157186434021712506024292807685496013776869320174474702271205085823784455321965022591087444972560651304458110209591582161591157322168555580971253313408735887397093783947429596441488861670289024457348233926194241197981952596022157548276913982202583379685127354432588902170065152206586730956371094165864062668225113712210225603449724383749749624585385332295979322066332637168809620268760078799432310687767176153549540038605574940930798326768544017858972569456469892482064764142869627462885396098567531101257132046747512013574489739898240483763179648000438666820507350462982743834152180777845072289725982993748576805914578978686200410561282837282054680936734219649587391550971044417314939348777199094978680417732955138544173486695373233066942311540160418415253586585408558599511953012872945218671745244364206672452597906005976119107161351509831534599675043680427002623351932498692687476705555552415281298598379673694391698828748603600125270806101333202928245823555080600398262089918617181532280283326434400662900092499065866771471458997181555985445107772113134826699100152410019588558105819704615366964349401723658021742359531449795610927466439957833119727099768804299269526231468142399246626678094479647637545397793974705795810308806764055127932264999386826582931178539683828393658433359882381829657461966548189927396811879110786734055537722780560063528456730664273401261545419368766818332557696503180138416357500209422026348430288229600012021101029517683854915040828887267104230257514651668044944710746180419581663549309171783091386288369778290743008111207004333247196444291153373486458866155641481407792444830792428669554287031855890801737681820605222064579872347112229389347061743397309369707922700897667671557804936111679365884894719680000702298304797684868607042788603512421847539715223811508226855921214010998717911606653431201368916815994132061636761005717892903521557836259622069097017758646352472462210143815964528823882591259664000230830219463863982004799229764507195228335573267384538052958290833542549728279284618633184588210593506501371122584910859534690573893093581137187685466564981882670789986736704925528506120074940382527183213414959569336507794273321642837713144335403545578552197587842386551126828004566573577940751242287078204725597486373911345434997527042588060444192928009467191815267437016990577466319986841941347885994574907787463050453772958562205976048662308387989625217381912381894866796276080247866164312310635211478400335045798477084799182782339787876140663910164796314846062034483835533485124297835129416571122386427205653584788397098779805206753818648798678621292682757865897881200107651640569097820293866548479195562368685078824010538156350954147028338438163140584914528359388109312696751634971598722763160325100983627246092084595684455270117263085289381189687924532911677960291361100892034299678956362039338216930659653653338450276468004092392371963504586290998286846520177752316300938381449233708007651305385808218412565165359146105166149072966619950634177309981834534705629637637721762175847285671258875233378629059559997523649542530739130803500553319587875446962999884844770587413214918399225117738331974404722356741972666123836803104251585745703246852161061244004238106291792696633745373307682142350195147131455470039836246064068753417714286895065143071094228136773770055075071335178281435297683117429237286653521576844513912656143538843728634674198350303161717546649620049060043827512106901571111778705062547298452788466005336109988912282589574645920647047902990374998499957793269550040357479749686664281232143840760644444600302509680641464011274699963675009826638663619057275311524886656154565726930775437867310777732448915380182710043925519148754537348941524720581082168162344097041666122241152042704192873812347083347876835466820522735560779452481136586978484743414546355625106767064256466646093007335143544388322753365053335564045497495580608068131767897262150039999027310505859625169545421043349420754831237874373808725218191855736131419278241774614473676928399476478570585992100654111814004382328418323398102972575292455568710240991078777854914851160626053457118567105257141055301129079832135898797479591406879683891993654454486538301649901401179313289391338736389327902688076231152088437736845701115844311635132432891338716680102654408124088276225463747246418802625319599584090340355751790609403096590883532757370557892834266204672459455098615008049616146702767568453463730792385126212654491231471458677572960497151424062514410191065502048186012306995354138337710981732080510683946662830432531982482886651222628260095421620392035773333910786813736704082304519276246013669082056205717635748617418111970592147353487037342482183260994235828704448024592315561349898447488601739067383321293191142937318101843483947243107641525794551243802249759206731078217772268457434139959833984712181224747578480442971568852137539379899279397667360316769944072603204942285182291337810301907020826279558344228644860414412928464315235297641383283640533905683029941057825709301633271928556259674227563831817878073384235989963288899592945611305793866912470448056452793334565319319452201668598839684804398854486937241787702466320213889217626456805447570917813854328772339755460408567282473395444566855301881316205180066735269198183335564351321988204615229242828855443503451591148454430687542948167900519848887794275853925285482817013615232241258532184288460028616733186497465932534146697177713540200721335768713323128187075169619552543054201984903224215548034052589347116739246894136995095201052933169643763384442120365331896171117938944770990781013300870287922141298436181487675775229609063095172055172552940264332211366985264933632350440272798893956385585791013220281562910918108534756764264720194068851400317763519488456404439002332015151906148843026119377505980058790144508060915943387771317313450351252236494261452601637106950425491407694103916388329918878207612103637164152688615975004145582210546184542599896357352363294707762877023203524656987793952082286217670719160157664921735805729995204901065545843812672074344194108704514590563632909271057908720339364143123777218263975653509386827058727117155138066970773549253587722424248453823405432633174439057288234573843106979757165839115763014000320021220103378485777926566211115844091993574505711817317915034454849353238222515317675901188688920844839872283154129158787142403143422496264240215316808812486231861010022233361196358901154514150444799304324235959148956520260874253491964667445902872269833275950683416733464237715360551216043707766558956964192210022818621562781045742970008663683928520869724834316094685164584820536016211584566703807736110305291182623695899726252311758322897245953038251300744655917750980158281761337810946797691654233231258050874472314108603713149204878416685582327568012569829717514532857364921843929660040765704558243704064776392563356378349210256792308735602332302653432495222447482937847298453512141507251532148582705825397855945563582627723855078753896552238968570131498363464965254408888422031441320006036742709739260076181476428456091325438170893931259013477023686344673580804930872334511829432499247943907336912271326276882298479749642893492498480664691873044142217744940137972762818394501164527419061055790977980292480142526053463311764921176339849147299208970035934163200519897651824835121316697320157473584481320298049881258871241115396527017958176303327177208388224683644644742540053454548691495653549504067653457535045532270790575119417040447364521502915893105560325923050662758795457876903840569250241281478841648072219304230252840229359331226132930374358925986227681255097504691313010719875913701296233115529601687645785276585623250449525565486663803976253134741650465450360489826671992905991252836077998723010631842122242702607740410005858956644718025843769042560967071680374986887059653395277109563007212268869821128553384452239628686234296821262635951262035376419901288509046437415340863556800838764499453548724803003542677049092964448257326087724009660197086203041638720312242109687673510776055162446664304309532000571887857282488377964334486420671150886133423909439027369622716469830812668684632905247910769892891857922631279739608603634761610093396869973320913874529322618391600927736951671867799226402896439679917723682022656865003350127852860772590160812515961534095292306794779446312932457159711205094242602261514508689288524872540590840669796136303846678827524704756892222098755293644419809821241442277909229088968633347826684921398109879978344947946998719447135644400804351248275478186226440947456835350422611313881410955890799699427433253341027256883279024211594249814024910915273467393733586946145511019093206706566018029808183228043247711429692976484294158610010892787665354778203587800751299189359842509744516664071241078106774413555244486932776795449584299332132292496523424771815514749484936097291278641892577130463631893595672240548342318776057934985723480924440345770521236372543202126968292836820166686394692815061312770757067658404953078824657725060409224305881150080173753334362646489116253586149029489393675899408336402640218184510283947388988904926002659652172323098861994934906122614915503804823623160341466880103139743083678956967448267534144105823268997752200549448791848804554725238558698434170892108196255496487834977844755748512887179908256448167614981803935493765219393691626413797150702773080847403571903037300659985069924288694970655095083267419354660071452310192396042237101465475694100323350236965927486669471298762013649155050730305254320263572950509270719628978022985292921996584332242801536649952943312198404906837501677833639269508689073726550113535646036080149562539288154316328264832194917855113795715892093888548153099098414605765074796436741394190667413313970856128285898514389475268190006353784218983148879405691708590865145859817513407448712419853339816331070670436714699027310944024371293233789734862093930361957994291801536052714267337778781473999381231713886317359035720194990015569386666665065837649668592735343618385217995333792004696274200181465601092299526848589036359549050831608379618656983742974425429797511599505790121412744257368355203401257493142215112869133800069801370602391221365935604573759413897478251724480434918122013445800341744664093227746713096323399720887457541330524328982632770911092306953460671654250887673839088565833638879177212400993442904710859412118470896642779808943164938307549387208631832072657432427010601528373654831945037077125969142474628820722182038089129651708734609894348906727485139603371062298310408734549677668113105333432607524537497755518785451454041588074345927895434576536248714131634567861302060811940669726494562952699390376522384818283091279601609253623587841824146292039065057828322538595869024155536046916122768761763180509838408086905515641148136781627403090708439905097093269360519887035060690613451775269707922970661395914588898328041580583057449324031773479642197867021899680040897198910287471860861619053449755118643418156198493022178485834275862867629904285154515552665649049976137756367757137561758994616003831643957250964198095503891474809103316986137631487116847169925150528222370908349754246506007908423415051567523339881360382115816321664210960524051241347446172401900282180885603297215267086799683047455956413221383302066825162639621501617789016955355783211918363876122855423017044144447782890105029527665230034663960619705560504874118221110817550853062612814538253047239353590237139371705315810574887496907507056941527256838470011518057375181161853257650641189459766388341839642191626408259379108654059444427191641501832616311783678528422274246028735377021648609395500641432456931625941854459668162703343090956255870521744871666271073708568191989523329906364179898811059935581142939132527640387289773439086419536017291079919568536226255592015056870422982274668778860263150430785318757587151669268900814426882402501964130802729563222701648342743586271528372963581733228328038068263170947285191991422475838619512169419393818483394484163821811874047075969260419906280776644631786333009091343007653486893894900975747207293491414393017829418037410710017647660158770647814612949869631423085253136602763090685770283986847806447354286398732083384995414011627551758330425381791641658572046220385658789645520879355302588454635346830540791929765878131497418409150129524112483677493269223324222651382941724726231926958178648622103221808996626974648203173313776244994298219701951933071006002713366582716482339396978720066844025904298381344944564183213949416612383301255224076616208023833074955360021512623900985773224277710408154042003596293680964888581344964734157084000063576643128511949483940959844422896601491968252333739137054983151434341284684422338117129616902326625828737293080177457725989126501233082523247809902893266177180492569880744190621582292457487561322102493910960526678600270659451712054787541288593247091035847887436967409263392454803516159251838542198240368526272353395102371308967625050971480610517772434618005927187610102247813824356234046955507053354235487850866553050514861209366354252452990138720727202082219282602174231763187773325410745989207935695644761276508161253244158363835876196627652110054198304790330090101448725547487147412639916545812750429837875865603342039688349978510376034205865589673029826844936237356467371550308982123352686742766699926377541638783774989257131572851828052044691855938247134309069435887733466069042401177057973910307095657310221079265183197602286257223362527964720620981159930411079225274022435102781808441088416056374856038995260879514975248757798511716016697231405778731451494081261879415379649062056419913324863167427278287936044600639489705987335691236539350000297857217816115577416052214280957987066451543392730336000103930799126568071231380453952107011278713858349908359526400170026467122262742335872979253278905503848784304523148261291909774954179558262177106204882392914845911223077440095383923592836466115696346480326228078997372299584327774390805149570420597735095390965404332080156399674753517821317978767768251737908799460486738246687109703845442555840012119094151061576550758755214871225143768734092334663322093969069641933767189863076583156510079732784595340052494913719136138476924932952961344211090160488227586906364833972141658828639891063861571816014065518736227454123662687138583466765658871652981644327834642413843071052148245995962562687449941071194523920435207657394996027602650714290572017392822045802322390259417556760772091850190550280581069848495237187977535013165827777306881121181103141989258725013827440868204420840538241972770097348946700734761305848925343840492873906261001734262657561686316119439382830869935866562066607972754557147611239844603083195868704306279575870154067407972596490186034385523703334851576214469867771761838337696195962407626422775277647358082254017452422932375177971733809546179746633566430979204164269619228563620939202370602001429175380832601417055798154625493296824107052013826421380246091243224911089445081491365084927961721458312165446595555427724039397296237348011499409716536195666014848177939649671975630553381290475283213510139446229354054360488516342555808884287922224171125568701591625419648552405225232051357553948298932150346657478488468710572110095875426885438184371227797922549468632100940615992375796735928774389430874721396094872613864514344493576060097398405475428210583191267766525468145559385888049790100687166510602768465907085213610919522397430747340979293519246811759581031617277879750622890831362080343662507987095943048115905293136896165362568892713520799815112938351435624604331394302378471595670567769575380863463732205630646461704601609429244953612837259504569872542326698711103206486749038905046690042235565802397705823224286793663368661929821047183133442678181560943187776482201309798946967217279196543620727746065228228767312649935266581452635604049186779382851709940416244139653202713830824451587035699264529337175906432581938340290368484804614011378380835569829454871118463788756825378337959343455983565674956474463855221319905016963289884460540807832471561945741481430156976983318627905092376606925412068253926582510644670254153620181888311194888453201151554274453208837378878937726172421701798406014702518375771013389521916490915165194618694966071673058736740278716506545995323792549756846192962066053206145593561107269819461978385808941113953085851068761010715851861417628869162359958690259836016322656766440873285385465082543624984600105176339216694230051032805465196109475271335647650436770442194070257096855757250510520251822189539721660115374296419588593647985245325070414507603071897896475291984762375649115624990338129664107674578909877085528545001080347573175654738047055941082034248524631886571009760068041359625362934196434384006988091089967450586019758773154797801889654440830985507620103638777556427400070964536490073199059150129103675251741966052018672684560874351470658456521475822706968755604763083105694271425954620888592912470647287046660603597757323755361341157341061015028335909514605869945104252484103399892614811866509736755126526269434569715007040750991740419417011095025484370017660920998582101889480457799365763894100363641643631169453987773774759537284957367742273281291843405098859281223158466943746476158445080609702697968425324770898768357407611286068075324570491992652604986976546481809213882359701587944106319082187327661203611317532234534008930874256241186567576858086178803768881142631498683710633019653961841006258772937818470426845480771610327415760612628601495532131684884072177840274473118751622297829081757305371877261554905109664895353452075139906615200568283033352936340520310697229737084513398485480344067931361554116526252301801351269848385870741761621417755684994255180700132596726266001561345106575757891617564177911687819135183496247252153280621882123876386689528092404314140642562463971375174315943545389971601687932128242465806476578167835597751366528634515182361392188862033066245509893533894165709056983680957723880695417773170405206113687746632424381301700419079608584065358912098298728041539238995788720409045223204584645742025207092847894787530878684873273745183451077872156608769495042220868006277461586117828614950363861834824065630749956525708370934559244005648029791186063743091067585704434159470773763422156567191421629612370591021118328361920505303331922217157015892552385764907057340399062207843036452436657310737762614022730291653442719417699328406803839951622766875035130921427175719643021537861348310895779799751998517831178099115696048477666015054539778795747830359625139191614029564843107939738988786383369958192666274090431947231026286351138739328327665743659516455000787674766353304425646426375796202932167113580419414504915551436378272150756181009949797653512862990485025117062455115799336610733993325518894458383292802539150625304201122572363680501486883409725146015674803940632426111331775235864336279596651448893869799555229746081360144362414142084698826013917392421054777771209364088362945110784138108034920829185404180581821290554597517884095921626015708610688231654365566715471453789218013782969880184889154735050708540187068008042271159689083582973297884023343802412331409779886717182392176590012753719971182947316394922962074384937649500277230359456759326937546488298100673482920994154542061766298183630613961130360332759739634910267295623228963818386425699888989431170926532315682401751365271147457442687511194777347623160734627510476981402676858684883208435956802095904572885331029411783555519487603114037631438184954974139586746752550859434977050866306919830330968960788507358039080781232625176057308536964231556423905823054753772716428851866276762092513122466958685241117474593968537180623010222865983379050929038188025539438859991837797710474593547823535413704724701762476263125944113674849884356968993882600804263494295640564883519062903685612815363704357944318119647127095329495137038567407050122422924625219749106548524334501664019134562077087800236037359986908380877644252133993267726847327303413322843285644524403051853261854780819825404189318043826333364068361369404097197979861497436612324536167067611127685070126654557014303717325848795258459084287975392354347784349151770252259414555850692105196425753223743821306963651452780613658215508753841803066400588720789890235574945215940788869621911405909331604745783628511425501503659212088069822330256884179383189279163547981514886625583308086297063429010355396851779102467935762172431160972709074405814520963890731769409304904325141248791954141093265731221590280354528918288738785029397157660218734907228719132112532682812206560469704843342199695606664894312366655355811155929583915173738445465962554019261309944990569262407306657902665176504408556598516637731161080038629126474019849649818280371020934376278107647661613878497374966139715815945177729712714934971707073396677231986832139109578005672410357118810504347561995694392978193373529950178460029334423908568321561872832733210932640482051294242875127719068996365140155722581605492947091978851169642213040889816008473577835301189242469070369964666525519825171830141113830792745089349715165878497326892188966056172498229874585112704128322349608585236619312260550935681088708998332570390921577923975301276826676747442046837319342062097167444434003533287823786865551766019797271496925032766031546063649673819719351476370773182708940178317542618090797848212895974932717615508108950954386230155450726014783659410530102566011749558204293668246961262468698859706432105330736285883499769463506416100452707598852969020725685964880247367588801433244177647837030555590811036502890266742420335392045807132270905774010288018413923527137948272216171386721015324758530320376735913550567176146650514873651211491190497559706765547715262421450540992714398697761167345406603048400481797982890650450361398637769896573923329674530022588413245357258340960144910825751044341213011501266049046707725787792681184429655894649269469470730241646678822718973976502980168606845488079770923533187695629233726416564107364383856113737863004281942803046850023540349997854247255208486961721788154737156821702731070404000236783321454241580794032722864129794968628258068432500280908427955542721975534318398015516350513941640999046917586636023285565561683471250566033101095577526267118986755310872554092952868004174777142505124718803834703963625433154660827952705779365078891748809148871023909071189322505887236546884260075597228630988957149701901706266038011316371099737110694264403150223605038830284223010371701578312076453857657236196193332344558238501497590792666861510717437287636207487344250302838328400048632692063392310840460534600374294562817566382885422544148472101665549612897553965393052791771919939777125620140018669301108607193844450759088578605342959019160919136023216218969491447261710465332194645896249619856831918238467315196577974034371093390991979411022794289931040566290047235097645243453423409040526682224520074576393346234211165735718374037067835275434254452447492238322462163705318988881131035487657312748003820363533445700557369818369126598012451528050567898266618422509101440031448271744820832563026970394063872853420286255362741011879094404231852676383790086224863105316320487040810806318626208816476781895822903441255872628210056465902875414296015912798573846714635147486623980045465732379339409279089695495229560630366192932150126697117383246393805923841623861948287969306916301441677686814275307334515372539674173109941625112624745924834773336887415510183955058593338655019567958338271298553035429320415062476318823239715860156671803371901220739668591545817043298972329477902807103547540022320631592415258315610887806818526596248407659954255314035140885176904735548415767483149730487016270034768938318511653772436404531635808014735547830284369016719343293045927876777596838550183113412579027610378801073195928232238515563852487719062492018993590004032263259030198981513538914166147985091352721279593176384322724870090333910716367039358976223512220315374435716913778794950062155757803063076602825260855559698789534853165252867338513007267328054404193326479660954588430610766594186188208165388414596166622138028175312210727849761541166447835486585931747478535343511867211585316556127319675684206541780777887522008832877250115269946347889020787265448016665349120244893891394486383637964251861723426137490797398829277166392187065615128973883534321292998416925635725921926572962866929520598472584025701379019353050998337968508487283238957346724418975620003542657085584023768396130668528394191926838458501555682917903376903571572571596633852701307084832370117765271024794850997307897560598974143496947717515296213435741330809093922916500812154107124304014179670119249678990844122889149503034345809530583854252174172784146839892586254219922749391203990870924261047075882761849476365398004930638147565849680701374635071934677040609592915422799620802712050838944101957194253569355138959175309682620976145949243301720468538730628039376407641415983254223030267838234109822190395170004239425001141458462504516208557163022984039733194771731722569075813837011477830800667199066854611619035293414982897140490800151774184062878535988238317535401955269915982453253646034592747135598602826508837441390801363068840910042037175195406355443137639959550590866927570104701838872942443493287776105295538371088241861130514291376841452168683728182188388278313179202055159371362074632442097211505611850743759059117535098335781666827468546444335103203272362028304339730341723133189813090470156434984188015433108445529927734164913344824277211474388380879081330583831471765862669550962902687574543775144212695510162815731580690122689585846199565961687093910282517364634131291488443758363163973974312231423784842147158796090770785200164586207319638989154767936393310986038468864240744970393618167852753029228133544001099275317423722758084758006080675359422590309972062207167561857628959805311941782008104880980075524822482590290803233652255829056683843890695917633109664229357112523841452913189430930507022757515513823956138437665152515111403722121936239837103012919013254218475317782590829627223359456398902723486530492911597075968491958433396080980633540548631174717381355133502653795365674355465851784518402088498163477013281349123051849339385220958551395468050664949039815595197954715565892659147462689005516717544669746607580763071518405960968355123737235878911765576347401179463602069492326658328135012773976834104465277934268300365756823325754678313061686829898602405723681785243168213291558908430641459721627172982361675112747425022681914166374535083642257863747679930711916148290028290154246084403215646848172620854734046586801664894467371225779706373125393154067092687827804358935651160830263978299501083960255329547247111252264166913034111668126423520114474086261862679651917392590882279359450145908417619630629919383787332762525623719876378376901816785398471572994473141805567190787071787336556224053653151460571179045429596178549264993906833735541859894892478998748536289132158077305790987991291278358921052644804047344924050893414756407733930011938101722044986688748154077607485651264775984348823694461518662632014437905247544923554608974465365404784072590235920559562407862655159995365751787511826268020563049537734852827505427818172005079088717046942834273042928323451836653218204391254900389621328620661551799273857681717200390473796232985582892198044844418800452680597524787429874512752323444491369545655268964400251054248912470874642555220068691904265257444389675651351107421166449954723893462261074677272308765190832851926870236982160150352156287727833556409596997238802537819893496260337279950125016951542616079073503490436901084920883681251448678370862762454040058231907092050371374379131215436989803716613273204626720664750078345751204586396784068031587937837451073034580895500707058810708422074659096577075729719620507198840290246549586631972929995795024269565124254668291609476182889873831390723840363366176564771823663359152014952472651437196386771159991128561789921145167878904776886177292582372872425135057642592502967718464473242011567471238419461221603531796140988731456100168859215897827049273286147957724958849364943836736710516441339303618382290466240478981517513593625691929340975976033542564430460569668352201937038211907410706959212630754524843777695359473209140872642629726350207971833920363508833170712277704705607026430691904168579310365867857243654487229254194989876378192700990063121132835022611491143317207703242738478668865174129636054008146244351005808555672266409378314767576871295148989883274792349641097131213045784571626300111566245973920407135766326537951974525065898930069095364898019937436944063497192331446903036431088539759160957546825489181463096734814082052104201905360917880253925865040339900096634638781488074166304695186690716664116885238198960177039153882259509128906680544879684005725133948636376904121238820691357733034700177570712883673328336094971557081457798369625101820864157313431034001321284167193895829335727819184329612003954570682792398753166537943759931133975845762442955196945692677161985090116919867631362327020792759272159108816473901381188821409831789413907316575698681801387866444945640613343031232540522508556980031773255477475145095210590780446847756833315704333909855399177724284173066811368809654467069635305532769122073008734966406253762249953756285162415449269381025738150732400691081281852222671802852675325686005028424261980857837727756422445272198934559473157128530602109304581813746318547784879969609392489092097278833284397530632503164152639316764340838542174758055827445856383187499839972131899561330762232139538694196447027207059657965122126325379936848141497219736991881984302928793784034845846339404079295448504424751808228872812899913132506362807176690523705919793934265355706154982419253452828179487070330793110740123941758066037817877565966454346642787615038960711575985616501027765970128951087466422526846557391085629626757679049528492837599340903540413755125130899185776429083862848036196412671668409301872385294332257216400830185642922471410617406915483985765944265697430320979375403813769277905869765987655656255779959877167559887869114029259517522740294804926272350529917794254283313918908609830825116579925072346192701114692336841663746863802446977865317008965963772629453161297509744141152950205617054753532450771318888300106710852639582854715841330037788305969781027105754069232069847201333540371115691091077327034652353378021223036030070892869324577405244729780519916338811984231177684680317359963589492115265571957832792859662866441639712958665772521676031932819376905215958681862925186324888044811087353124151704170603038867941056041814263714292004620145120239517958289832503661906738281500103373542652494268150969040847568796348093887697214362068460999250491114132306255050237736601092366425379757616922925006303810404469825200021009843406023225505537932322942372125061543937291333080534296287926339974913770171671973204954498404389465902847651138606335291286511910501113128584404888429407518515268147088961502274244457086480876687161347838772230215656385164123529647380399919474935920123395252503873806752582178900932711628055373857776151874149277606714686333632839487485487268482589845932683671041415065675433703908681778115572819234149454540277792241867217658263091788739444801670903924763153082089911811581045137721598703026060256208861415721707222116706895310044347935238857053985604615033887581808235978489551386885873865124370332319694582483933691173293849572966230628946202389249573442164631832687312049548451712554152571119971973807812400382032721803036622507178994084539754465039802759508944576325003684346353151398420932350575898931034766283957060732702846102851998994737451201451209780802702852234411572838478385036073916626624194645407349383985642445789541736780548552502949300697367838013076681041233567614322179083380610341666085886105372060569758776589985841416310344756748526474352847013694136176347702025086732156000215901146093189103116877280737115911582149868136718466839893619693353310516975518844916699201384719049508163143862552549291092809428162825512902867217151249737931711133015293835936697995328553765995736432284303975937454555130464291547363831411098367917918854127957424589849979662225871831607636507339422388795123094965226791966325388540047645906272380093387892489726153715298560408233195450659549787394098808772763376898183850416598378771213792430310873898600918841068853613108010061360124568838965928820596117638859530938455501990949911768035173263167650877014100942645432778355622971498969237633884454192113007619987442832387109257477601105339121871913926422867331353392824532523408520498663658282200985602010297136314560130886223836883663129718320829429763551873540788506757321508323092080019959898499526738436480544917588783819945112979338873844998906412092254272353110479924844019461649647831875043597993866673904603478571094259537118893571391200276290344273930028350271065633869394353144661531083548421947650995466899730679493083567662833455277971061293001343520703321630348510656764847516929460196611208169187154011767813473429357957155974713656130070443392270178585257710707871921759931012538770079099226755579868073714471615739950151352591558481414107849556932106467270069857028138912297097353270589026668726065584247522389678116674399050621436774577713976905889462843819382655492976355176140582843999590323147365560196552507455225269086061208403752703319142832130624870588273801343976820521420224515518588901326917762050636294845630499966658611469381805780917957092972797549453765763640176287525925399822472618140252517458141278325436744327863117294121166282496100333515870402103670742061226716516779004315398184770295450986230943334449529542745326487738324003614872709727288613177979606248926205987595298648686847703207327671576411928497209904974403028052516731196012878723253540708194347042785508807029376692465627022221483131121510788986248263688941940950996027008623431657336813427797040538136238623140659072930023667689449127252859761946414893502953024195230189658616153953625119674891333061315191697105563614110738503671677238566798983987302655786375247862185052880618254054547226105527870124329979957791855248534182398843809578996289178748982721287043060606461837064207720485987084210689048997439524214007786331019485802694597323104238407756468451866084918598221343214648286100010612880458502190199157069001867499662659334781626669526773953187912290421699890724934001714366296689893790942230408572598753295038124884816101754034446331859515002762142490090139646580448762672654774598409206998959725232867610321599584063098989682356147080233813984915461962700179871928455548268570536403127558665984858417738724062394028153263927962282493140980177332791145279135218978065986856481617416943963320352892386934209007318020024244685780896721468895431337092268045165244193446500093118460429126319054380509288858796236229605989273548835499476509517562411015894719474135657853372348764984705997137234514737651806255510008513752701113583245230840870094349316294940337293885883456141161544763285278221667346388488619224654308351145210975688973863359564661104644691617350445784332646208451241048221332803805513673889803095892455128572578790556648264786201338919112118624182103858328722188668867975237753286515272098603529191146635329635768021736862099569524255735421549985024697118985711710563004625051770201588249299383805297992549798396620936939389867896517651176034914922945842161604689009896391130267160746690380190066436955120946873548874136631307919395620171888633978916062704245703960310895764955143808546846300430622329642908966926869772279141695045176751922377928483644645182141537104476209335881664186341365156152909153915095544339799106965469256568477618876315080352652747298280727108649262055149511637995551985187600711785019338715910546335482672427700133557391475203573638752933635687356688961215257149756945255332418318982482945873626917661352785424433116486854491104103458005803992320744633836428573051641945260425756547399384591199514498615359400102074066946408317485033771028142634866322883972359144057779376747422582595727652940075278129307512794807929053071100193511290294585510937743000792906990039841147335032963985595964821942928300483201172519648400153197193153119637078627951405174802381528045852780755376719442556372064642501767730660562083202735954958851481711808111390296033918839400529275924356834340656706702262201736462986794264730086897055469175496701687078495332481328456377280879044294056486112432757438541122198715760222155517287283791493037282879919472941253301657661605229995981738119152412835651789511532910638509472067573920186806280355929243100560424235722108353369691207285462892629333464484079822685235481881335036696919325706374972059073694009473871793188856626145401727122157016392516875910985137582906216674249610432487472244260366151182640466953282655320979468080042408801324567153021769214877550820112517146852283441195190643015802547512766860050210368184018016005824008134943178723364235686079477587639047697517589865379052408055381279061570230723745831640318133530900946958239330627959845646519575949037398247009449260644144923030708705702966600513707052314609760789274108790006922090696366702329368567327669880116931840682216565344851759408734064104936692602626485694152844356236261374898053700743325908106173335183120581809467061325622545339576249001858604447404087978143198610190765653083800600177397788236749036430764117645208331867876683147017588015245790523672217101714285771843618391940450752151399656118112181811656592742915137094187447455661558354090032160290119596333432809442838834836878120790395050436161645205508941579366787778809906388381495654685933362744407186365050354276100138782690192095787938008760062596817862653679761592108801039663661895231719276920156413802310569914169441168086857117524635335662315271324704245063617721995653462952620003897783319054691748188575188777117700684471634337571659706495644474566537134671350083445982126472340587869266781509251501397043466916700633706045103975994954233081573403793859254569828004383142635105489898850157487276982342802160826066176239451949130260073994303198499950067948164348781367462029982716608560928580303725369783879187475175739270961438353051036036706398095677669918902641063864934752465874616160281909055440953244914548380714221239390186710314310476105964042586258707920398823665995166618244399759557211165750530035903929115693306012162334502759214370085529747036053470151705848880000492659937129227958722543028519658912334639388794987797405872228295351324889412892160640573301096488477499505398043897120910551614711842362627222129948162795973334940697796057427019716549334354025769544874234736178773993179378596187652151373762142807713037686601486318672598366368381566530732498001895395054028408043290609779889806186536890028849818318331161001532568936649814809831854310404326309412185543299824266525823793756918966902033396418808293259529295982325357364089232783441690350847674621709363261854641066547671616393874585415687260350833711598983456499975680673617269930158906587262109469859623050502640230186272893837484655853095657255557634808642450719315373846643916515371839202858223805646051134152962254218023349067782435083907254774967029006727483496447083138513434369837105120030141154004725147124920986062810548509629437340715736412138288291314393045214623450088250369360417706711047694859858754019528249361742625690913624509573039263501544254558213451048471098291390503660055198238995045388192872172615323754006310340873117728214996324568630635313163764449625595442072776954986174233596700727244622585894387642852175892989388030702946825058674962285667157852782630325730927713313656437103691214287826603271338838197430634628296039072278311859951305640995830887985799648957199005440133267412677721385930256655974923039041906103813957778014486307667357896064381048288156323887007547758157539339239293070050770111282799741181964393962009372590284695416251684360661034670760717062353593026031766626418851740947253003945606118274877736877576564739118917740312945152856069715413028702442206066437259465252713008771855202517338856221788876977037815468012162316011060336646882600015044807780114764700370689466707193378420525287044038042810974325279552031344401688695973209746676971964029173840055706413578732054966648896502888679346904621842445330106294903318648675744595697181877237147275264799830715566398443877228947029622651816896400320396220090444682988833117955405564825097529488178914277656638980512011709663924629741814010853982754667724308118832957317440464018100998229093948824269212267388981237272697663470628838838747631077837113929634053663012212934506276847988843315809524166371982223974907800265164931541278434661318199776363866945402022934872677119902289757727730760512039147965833267358643979214675512983769384529495683674495419169181299604840917792272089804166934207821331464461846079263777611588875413395158808344793327302713681074037792622319895780667240787611345502454914973006730617931199093275131746786454835824620124329442675396385262572149563271804183789526784490134317997776875994324356253869561981299645008958930890616947679118945500748207087044635397198835715927498323684653208215427605273080698393526082936955659585925625312819723773409136040391968803105807242823139309665747328880949290639068237311541927802718515806510288679521095411691955899172532353641527317677908765774128915056044676064851204901630634210388189168649411513729385664578681226935979562921601653162125547796608592409057637364517958612478541029448389346372875019204768053060945505727888295549814271907998657423553494880920406593951903079151846917383587176599854163834782946491362814353526414906364183597808002576776364942317549906587259314257165105513973680745273724222989819621007999424368117951598557515646217534684992240862263903761176648210749735117607648651000454343028184324379221906852420071297113799613059850081049750556460284941748708452475586275921896665049669566153330433728562991424038303959218891834473764723124132217615985642608169343478898493761069180136014282194423137870986580778174081965948889772444136792278234533594934125150471627647203694886324132133478273222337013934597620196453172068286414029775450419797958208009773289677586460089581601963504047841841924584669362346559434541344613527003842873860398627307491532704019145299001006654191884964712553283388536394675964998446087597962549898088062363697993554897618942897603279825220604012561932094405369383105564827407671077668336583128147012602569471444876168370075994257441480735847279874799592493516423907673445844811459759249706448171479960366311153958276421668922188366335565921083114666170961114640888912603900660271483091595389473890004664861791548993368636344475693949407034729998629761587883798317741293367176845250422611494460555745271606114526682730899203928930441362071586945714362267099198397483244495583539379363461919527789558854926287658374626963914445931138416419755567511883828209438138554176835982503785657025438974261310529299814592522350638326267792615763932331610392021100094720541972384387654083105545689994229029665666605428258522373931643721976793729189931453541623262645582595554308931580480327311385079975417963704357473168048122365266139196582989756744024293873726375335129347269252873652766378843960710156105141647364423579570960726491879229759786669343508734338167484689484965543320479510717744035817840882851210513052293950489544716276528913968598447671478541651938986680605533032067786183091795193619774322070401245136823069823454369506675700232169541036617771232539207987542288178860930715169898685389331556309688834515678422654182194336150106289568113372521677186420822951877056872865615109092970618531175977237499801507060498222409659755589620564444826969123217908133681047895659111814869469089866120568024877292791069350501213411261065100679751069714651780859140663010236716382182268293035035472285169446659680937394888397084379917829586418099793014556764821596606688100717620126342542500779186519096329741751847249904523960216499939929548730633660636702603201935096658652905181773738397048949579381671859591389357557349858875768442704979678908941128063107215142456826898211897640163608780311398542648596647146646091037509788646789388118991704753398138882391332491311207802130012790216933022254988571797593988791662801960782853176748200452545986693534562850238102696840506108163792561008282548579026161357886622946241455777252855035373939597398934666962598781812723713169410542688226300096992855668802178526571578804632503156121121122448833144670070414842085593863612773855779087243143624112286031185319250540367059331828957261343094912663912220083975605828783726339153295479423277812393534174721089790190236125957885485985709460027673938966980981486459992267689126999179597695457179644533173753428676279879113195931791201327117422466423783668423744740514368038134438891021887041503427786006601396847675961334943916299459283792093933749931365294878022089831772699951543541849302056388064607143924535114113021445133646036008662397855045408415542618191439690575167332063914877338953564729411275299075553680161653361138425356460032014538839988856909191994062732380260524275548836005501590311462355876062434965221997653009832784356940659478344889603216450451953821611071491020561787151636272756188415578679478193295151743023219500881803199271175176347213054842636167683540729452886805512424241908224931925024299574110890903249622275269280417904571913421111906024891370241496130644053538682615899771704074096530927980913087949543098060880525549257823911140905694870685823640724688466540632137868221129864226208903590949111508962726799777128323945795797126445204495581698931696322517529978902014947059494797470710820159297513831530495104336831339794110998254773416724398724612138445145183085477829852418379657690592615021635236797234599485267759348823846979458446235117001978313318632772606480644945251501635086140480273672253617762440787540138023635451801487641294020184252208821106671473776271443013031665454028637931040403530968306145589068772637381872896276450262281875612495309473050562966749880876551028243024046535161389561757389675119018377878577862683965475403681837526272149974882814684167721488216005857130427686176360292118664764817267900611977305422505150422685905748653657970234506188715033499449142978550610483525175362763925888952840612180672036761371492095693974405023201843693039272659215481382971036727863414179169194034078833351018535704008512997891140790894099910714396887254338802335090845768704251436064836334675116859833391420403797458994641363156688543429799141680581219452403722507408809454262770036913870338111890101081543252978284215767040155923176605287347072713471702553993968423039653339439081207661901906214595523362693894317267847900202634672737499034534220663916785155793937902699560532846744729345896980434739455237014886410192017184847018549074281292652570261531046659542348622538225477579650766756955361862309307030572455713384815003353330184631670618780913802462268180174300527852747432676191865455139702076049152739169044783258285146558695480640308617375036125013589953696996972694184006243154657957096939912658515427776067032887854721121212326460957438782146878457339200383946079599856372335623473544510458412952552616348290965571495118565129326836785086733459957678842096416481959296302601350240394589695728593920609422319295778893325769485063594603267555570717312875539571013918137004381742593517085358015448349607003243604875580169106633794718078343984826425584135279710131859929665297189583205893832607513452435355362370043216093987238686277322802076004579145466261902155029548970381619906346385257913017780744502619352247288150863845478313473493628500053550031733546683101052498360682093509358924262691197904421628625848909462137119539592186730987750019658675673898109250678302437224350042801295611307281423047228616644373777131632869570318805676917073921128113413248906485676780921817791652256335416855124190318319670034770193864931564588679634449093609007273460274599906823211885229837443747617984172246139007764800702419346717358454057937260399191581408405587316148885427592262039547182229484663298739098638323476381163601159732376756643598790588326753599100139313571849625623554332405192457714748753106276605009555739033809450611967082360104097332886567129680802062983222939121801823822792534987540365216897866512749686530470906258427719406358401815472810197813947834879643304347980020744823970815733555588322159289217868402784470055968629851273256762696384696420360165255693832740508965707353789839862177277324509987471765238340754949851728462814843365581954145090857179062490188092324083980150705610632267797502221640576207214526082947338426529623538427480296366094163161213682216441166567932378489658801721178907123544826838888517291531179232995329288778576985555430252070239338079569611532469542177538301469118862014534020769308143866491379573167880252435895240699352073703091333158224944445901382908996250876796299904196509929825817221454220611205515877423680173428134940929946236275867618651505550864238508246080838676312131529951359392032071990676315166826570688331887747293019804380620255233840933423786583619923353060859373506359025512890054133350899120470117453341787128081683476847133474473568230896151156567827151426338788970472853999269511820852262380197846720913505815474497350669633227166918211491982280462121936605814596699399285986300606295376812237271187990680073024569611609351396679180649645607089631046825235666061998585090917890297675198486821398959115127143803494446482025401984204706555398271090175997338512931204782639825555182403937456316013185393244744062940134996550332868958823698812948402837955375974023600345025386358622961195037413501585242481858135060740083789728764519488234384073815611940918009253068432194097210373187985821098564015902527368674336834357987183824610234711440063352431738277681963026378899016336697588333701431133242835922658427989057862399248350487914438765709520804215911094823663427952165381774860478213735837663030938632473857193497677079280167591614291094590220532395922423276384974044143191811752326163991895469970182940617515799498156027058186145394366027694050154215665318248182664385178517715079947525152253658802735664327353224066874750823406292548704225642441942160571992875728619502483133471206441470662974416591859692970708958101833909855342250551992372581437930277091307991093195813657783785557629718370323435934663620457482742830073807915834127302419852538863192791932323042651528225975185589463531064597735911543896050473364725049908934225920781165738454378081998009593199565265853043458701764894623640659563295602861534712133527692723583117263876140026137942070460401885525944078271105033887650923981538430335143298102115661915847078626700182549000120859514538385726132325308710540573545997750946271621640344236094608553055489693704082766796141541565570459653174702729208905761325165572735333401799886218030022593140511317578744877268067167845526208596059966765442911364306198574184581833827247698646662731820000075241369217619284503181363437169133318393352703713320672314004109988361488673060973524603195693260640210930569015978836767600858352728963697932795664439515504819678119625359703936967421120902014719051975497730137365478025248347890882901565934453025122363506669470024921728813811532135070928877616310604141889814705597240751507527131699010330729462393928868029463167710033975855893262053356708366060381718432490771273666892589443038097722901463082459489261923830816539615343791252922479187901537096769767311667329931826358374856905636333849211435978036821055615945141646160511822483911626902310219045831792145255228976453016403538631446435922026880408073902397963862214453079709321765770690939266858634624341656495882340441091384670310578968459716464493453137821634625487963168708761228178633933572602320195124465079746281353504811411880655286923454311543134102749942582557265762185022519962349142406689025174025462213442628556346370345735702442495450533539690319253775393092516518435033748843272564431213356141306346229567324784780903688511561205698614174998134143388184993396902306931019566814272404072764095338840020250392789997229791370319564183688100993566061906169466653764311953295700432956698735149330693524807754730800513016931602483715363169426607725335069094536546161952980575644661123809081972690642859441159560377914027124350490689403390481989576715944928985694188650900372177477656686267591367022766114185785925712644992512237939791016833789450281042739429518246534788374681100946509851371732344848121629040200880607064681540444795551071346895134434215783619804704661393317051830168208011271797145179060723806591132174921959257179851056100460927010540488475664550170767498444702862814851832112981435920695900913906052625069514595026429272197553707904244244346349155616014381433344425661971706676266778756016659530201367281223773186214681705035240936530519988142024396990847438973975594073381438457787079595245908302786382550770583308097056298051288348876891920651427258194816106345978714464107636563298715708198980558677686099011524844278476380855959905884922068590510930184518551136599145929302449817631878208659289365104642201620277846727432568049941194592851262352737176360125374766259717363034732505455962291210264931675488306496392771739207590165324504291193213490879490143416723067485063669925980852271641276194055247280053719612805693558314632790455542894725327847528578395274009018121070989976593688078810166725562084351805143553624855015608768219816002850819776722864273987089154384280642103988643475863860041750855925448131667016850567506859957092534464263274931348762755756622076329069719374097970976001510095745458757140018472430028943619792804645590102071301853753836564190536257306427185895499114630825378741977470419975135355885265815876002480443221725863418880374618070472992755764328574588876697463988267782845721908754057739231247694263926554671512694405911552034767929282877313757820899391353929218712682578889880744133643882768065542166963039831539093715991765792003862863259699966555490768386319262975804193361815630571999351206265310323699159976231992007411825710724006895642561460020991086130523922198840229771014915008038706399633188687480320032455774671619094794329146199768314808131112726102274387252256029039042670404056728802347541595741154886612367092751282725117698615123406282047251311817943320149962540935837242959589899874483491841596831800619308348249449689343946117663739591760734187555292300733732233036491235473635736822246150695743926100039027666638509690256914949077570592258972902611317991537016405318726369878708862140310211203351601691604787955944457275250427296948358262920385648756014852924103589690507840699853949429971686111941468357913327004013553324830804190104481380993568837647502626172962297961222207878934652534749257290496391370799468418058566944812588072115438148032906527810761899546900077120254655146707301004982768831319764616429165622377969255613776609308528490621761650348287015524774896601533449885153272919475465376316413778418408887842379926351861832473401953599527154133902162209400965117554652878293230575645564285763318739709121931131344906946152237341446837357710961796970355073531839131391404244644589025230491217999882486884002618950915318775379508460690864498561995825811106027498480470821115632993878333810296418430721142222921148939004968936884290512040581043726530173008961962568456408888152274110343683750133011284772139316564546450920189870686149692935591543059256057808226801392938957219974789400310818850981245551817407548645714106982425857197323224057382151587650934058093673177025690340672743973530273501503877499774159108988201448695348609789005358534841378307429418770849741086788388330720249110747481672845647780794543348675028916022983746151983724500226078738641220796308386123043165889859608456665136238074420014421557095190634725223924446488518613462467263079095425978248428179022719958252444520844612391108883092051076937706167108536774784860612940877461385156548328699248527442471618938311804289863746800765714404087729096945520418132341252321493304701786277722399396147522775767325986184194190472308814999082767290851568106208982829720958345395962347443316695704942954706776520125840931610420284084777771674518738161809811257428782138772234189599144159315886749563495992099928117334720493061043779482245879087598904501691341958595558679073465175194172249517599711221761074445256690125691865592715693728794730225966153877380618938665913016929289596714494938979549093223886098116872521138926129580944593575985923913521116979092195935110833105387112721776982014946649594012722348552378069672747884671735078339622092374493229592241485091139342586551819135293622848418801326056550943566549223177131499653745266673082210021959485966402035379922756700873802486899695898898757655439983923010229268910363328922658049538953326913347132221739819180953640988404600314691742717394356956750230985556957425043377374529933900823757335402613825891692321305606858268073541648383869748261890264509304162576060552515796805238033106114754574715947465466038400526198889535165384849912250090968427019927559784219688842067734052036899264652806276539825380638177176760511109976731624842803756118847822282060304160082077904882803066943661528572972427976112419128460371927836327695375632185769004453341392791617309987087690531213642619269400001198541378117429462257885356992181556704045056858752223276872578341692469009630841366259072412373104616527293794864331323111804970545995520528124800629743020226109151714246736361215166066089093766646508016360044856334718191725279031338858444689015402743522529229462397146990918867459228294073573669781996692271115832890283627744785020368467496170139154818789548462995644457943614139142276209819338783149476345187957227797607692188015527423600831914082541740660858097583477540057566856986357139547622835076392854694437660453224624558743652201982381592635379262678556975069964267829426004963024395051591114289645459548241891941658752232587762301711392119251650421584725474381067543058533420639927765714319471670770665132525620436703295729096027863887479362756944125981639188534612328183205686538075730215291780549505711940813637400025340638837769139910496286599293813330720163749696037213796063573897241755428378568286618682584989450420574069283937334657178166425287175899458872901369785284312056560951991847522314178203414921987365409975114843045345678318584577108321774448676195509969349317886464506989126409685491087025830445549203534531670750963675599824698440566177312633730688687164929364207666966817300837890746903544084267940383427611705971862013779501891124409816143747156996300151639473947420812236049441430625884347870123395062621313422437506979507438713073654888608198849489593251752011824704867484605242505278824956938229670756350472408678374971064791208617681851369083375610240632501033573194456959043202415642922451149857994006143262930501438678664827872023906653298008489669540751684676623734839930538873429420165056671729253282538044914986018812721865105820553148440413480103465259822618079371700960602574812019628340124383319925079798359036119815749247328723694105211489098924059404602227073567030948641667709614799224216688095902239650562892102957879068392643191969492547782310562938579097796635353407105829635122895306525056044703240172071412564004426134309868245414135326622618292321125656034554952834995451031192446614996159908252908820382095453873003412472932875685665196276771433228042707990603665249507254971430695336483573844780930902443227618133687974930983990927493971223410075586076409020081468129154948312170209077633572204263194455742505190747424493331689708311895914646775865294925696237870179953597267756242364264993312425425502005257818463470844332072225357388988603592532615792943556713210023352493437217674923804548641767892215349102694436558949300701925915797429582215821472091299251430504991068886444921269818148307446382755859451002342182081597239776785831406743717993016960418303657273208350680125027773294619279842304451986965150551373096873870589136323245695563279877037595629487349629774487628282989755732231815007672153073001929419765556906308803121561114379601317012361255708447181012109672363982273972646380593942842372773689103364955325758359460757792791930951126528871689446134433482357642568769948754547101348492943666460690016914014135106706542238707186629559229781933972799911096457432164756566988134342662319697485240697685426420663518124771077192839636735237498197323320463145566357680236890433122486008582816589658098805370501227832775348434660886348325695212412909172715638394801987284171029390792177004321825318669090457419646219904353679672277618990847494138082487061955944193944726834241375479726018228095303406745563689215826676133798979597775264010871599380158543052141402575215205790994303460392866492892205653681546533170709280236864198381724270130857258737610916874201843749608715731660138934113152550029849164402916178727227399729392196900628358581787833909172768483911618989045986862095167379076660719352278682491504363399624193706624215635890947923060339692732471288718725461661538134098686750465900190885067400123932869122618526690916160576567776957638776777792697634025242991127048975352472551563328135993821080641008289237419941607078502182787398041683679914945456494640185641219099880517337891424869827624630327196579276883146797391901378603396875614896536970047686465549638990980021835179661554012971378881729957328830734009963697412424419798431713257271363576450536379037673918677727983185787116631244752827935470266306649963116649161172569135849247707784314055459943317566420642796245789026862408690683821146036105729622097625447879191368528057052662231878589770174114362058055109856080312062162100456476691463174775863988873480634475467162891590035056326281876500638276954583571722011947924546180032774311750630286344924294723507430478762685942207936014404972664048737005061228702561641586125359029063183588456850501939174367579059480903940053678862755692671593052091260008010574011533552721169543998422497479674262656293612807832652562428442388637145891759886163627938507397235451235333638828337697838668437174569163844357146735887598123444062702441076765775862996262610894958500049039891142077629091866414540272446830704926968461141670944183599082679655794633098006122078412175990954935131082738186504267928393575085612791478767667409846847327581425141452433371277382305607022808660743670528688756922352521174636209046084111440017506223799077088109396009848665326872506935802475839142345975126935911265306302412778367494029976579777349882802978478770578058716052641431872330559822104669537638273520212338800603945776868103192391457195574809832741195094780459544125272463318431399566392773907253930229174554280812629961004801045904604852121734034811011853926877606193783498309338557815029818397449336736363855598529825776898905500768371295586133839121736301880042011255402738142830480062308625591277093947337825680314719219130383224107266053442853866346648181541383948737414431492000312617672121270452263266682577362751618632917297004829226300049111349143532656777016668203861204330109658428799737973133556881418145778581262812933268397812461178638528297879428905716516130029632010080532692758421220542965950912807606442797327734631838529484444779366195865950580883338375865195317386501801285277338629550510885625221089770625282246589632325138767750205301141530152844673785137003695541346491700956637066668101906409086569602752499116758464432432111394518410504702860175978797708894215288630684313460202741432450215005076378186707891928597103511127581373863559486733067884435709634611298354807170637869044162470406748227566518521225714681972174035523982456766591662409206565626064753925162655123756728895359009094537474651213323017338855295007432046723000614854719143160528984021556985949208995245246441542261238887229291194542325841402677601705106029691955219219435425260425046893000590712942751719764161117792780720713311660512296425068559643976197019925678661873611131398271183604276986721908573002661820394940291648952527442965643410100422805861305862736932294124092384708486976678440764584464494710217191279381528304834531484150423506756668953421681397642225371974186054580195708985307090633302763843197546813037317979104342548653528831917934845979846258716380861189011773595310889468499563779019333473803968926106993415558500317851646870516453528051302706207176272877098523369585545856946873179314680759886489469959645248697716080230126741721001351378062726409613512688307987584204650757127258481741780238233526400951785117634802280291220484084074256778996481299925660412988355542617475415546258464916532258111764443830246590247175239853711845689487920654135189686267958727819467743759614208329746972957224458566309667271935520641259167023082918315550529466562351502751220169021663868621503594518992888880262588336351069131827386071281647222547596324481088956331479247316369772773172030349745821210654949186121656302883886762335708551712972376504190458439801830965785772456957288393045841405720491237631086863697283298527447430729693305243012213481527247061357574652090095800576465717822663704488053045169542206652770836925320684675069211986020637869161936243908588474824059889849005939310371611170489927959545756258862386096070792558369051109586059715025810149065105415529695267574347708609660884579731582118672374999144284844134639909569133261539560950953007201305332124994566281066301549526647335764440460245577544159532487610482344057591979486969248526646055172255684964674898758298701708917811220351284385977158669070740618812332826463145301746717360481336479873901179675687006907143591644181831192870945700606856070877793560631360343985316104346787047093057470605616172463566675264506605955635741310265694378143345371969179235153456706696127279670625276256246476688189762676139553043971074181154821377489438959136383840208465236602255705398270338728193134308042818311767979757581415855623848823523366832194696593508173749461839119478772100280624309322596292755734467215405376357697184039771796651502119342777450718276343874122433616209046869780488383384102708235550328708179012667226809523011388750591946934659893826254831052010880394166481762356764492685305469723836557262915250031669605719835903033441505281007576015168391642604871066174756013715703085904653839464388959092091166017440098804007260463801211712254782257700711582599767785652221647894991482735376783626074335753406550021065118810900862912455033276106959078925696259363430669348343522572777974164852275795280962660460714387348606664162745705019474242915732780010433586787652735465770733797851125800852900679125692286897758099377497094536979601467951658491541662473209410971869029312727069607331530795193413791188734710747781896039038908875598717024452838353852971928051561375736033359844839730021351779670572436292418054371662761181866793789743883662341488056315815003424853463863062824200552403136613869218932658115929183392840237315035811307711037653286423611528044182463294249116409864483171897291444840540898023162093896663803056502417377261185544786865496495788907809271247789048428058922067016734589189196935277697836346215677043905223691454616937441299141929694269159083187213924801418662339907101222494866504970960073401018361551268525686357617035563322675793279592516092693132223712387260081343378689587269021287257831446012551864224780931226829776778185058401758409129610246120838945941950063502162677614965664772870050071070236881273435546999541097305787244773541505262019200026184068340608330751856722188900589641570291629600133382869208931723979162949628486748344952175396694445460005311968713524934938253159481485914065563736818115276953924240923300988155283467188446473126204536328083299006399237730022686224452857109107074786249737517120417858106646651175340029363287298401608732435809489163745714972661929662472252366371490272659808254959400598344671340135426305135873965167940878825424914293654848291939715968408881415114828072441709184332121225363511484408592610157078575654882506916413733248250983223943300437992790482215467704320765706965304637380278740570695935864678761826443577458606865252086853161637255641555345993741945467667780628381271625071108374370460623783391486066012394852036003530861257796634412190898239180410364475910659805606813317198106293342226694029840475294308210974428640042933583573580927361008038062689218921504932082817471858574462272131174089619243920935943182312520839194680729723554508944126641141700253186278942425574257129192332316420946310337946700781951237419763414537114430869357117614407461780383300146778654604913667008501273939728010380473326456994524799925321860411563833801642449882489625733247742382286955459388643641033786091722607723593758935568603244095693072908926183135979584469805209170976850198556357496642545310028551917706996478411466345835323940031991719805677802775825752082059061429878361752601917322567654172342361400645243511335424851795813589056798034145803401313028887211368563094313532756744379062397597380762848212170537604910712484442527192943512659467534093617161211946513126301498661776712879718487280866513358354357026174901866016658302323222177826085729784935831442237799066673034800116269511040785532101265750946746093772555379302840020974264314740967317311833327796445931165857484786637633787860349611911973614303249892536832124448374948037569204279752647185511551767670013469405873139614078962515473012121603909226423469346691737726189418636140771372791325917404037342996367526600454402356598045430470382545872194496101207432554007255819796284749693259676362422932901838905761194488930466395974885913030680383210198966101697596771233258288573155213123460520060766915945905818389719892687448057361347639973787657560361584517238495299142564768231907527403111677254859784107195724970855358328582656382259551227224980505196953602319148396885203707618310695173606315242216361228350039373259479966411334126349949830571193121200938943679638010696768902409209578961788887009122473988304652153357626251048403302465502366520653551812952762395000486327701983451467850979138113388134733461962356899555254095739370089121348435082955231779224352952094694757007987116442998983564883257694735723139933342807408864583954039325000874080405332165130149237014950916759667100603674285291803028616880373016306793959897472782219952726420019554148002543281598335011086492303303837391201578942540368074651868670966243788956889896962064998626797788066948476874296227841123383557777519424667164520315473569069874282928348860118442613918496557220906433683252305661314729663083344089011680397812062685806806180777032972569208200552831027964039175863084385710987768691059277766073693449719317769113650925882924600291182993220914157813667048079201715991497301012526262730274758678295568368382625896317526685266052948656862252760523290799814301675117502804620140517383350678080586447668062359361832696599263010279042308046467302953561594853992974412645771515310571899655280203200577922541368761212816934112888217861518669877449745674839321287594977891190055312162681434255985280728381434703822739740915001606670880284326592499448606756945803755611999091012761978895945946801127564586049440703901842180375481935070524527610970593704975639773103582258521896135647907086937734346582293599042169438717217198454606132287734506301115306872375903803119442088520257167366233817115577920732291554531712166326614157167821028322782486947491801116640981394199238744032510850214612204404396944470767326942624671498854739673162495153593872472283429239766126434458084636184314235389337121849626308119832057337362600245799792289754677982664555628255138850602112135210762170300774770277162881065819195831591424134762749098463992304076190698610993751548083998752537032087258541090288694630048249112199175774390614692001198176645921470473211612757852187231047495448092586883690507390331759605511319101701579807771495239145991300775428538509328695340107751185978095144040355527091750113277757205742221776311416559120603491863316140433744305477500108470656078102633654018228623407119024063637981147730851240171237479167203470640030024581419386151762533438672406116749423945711309799689359849106136098235784916468913786107041347951508087556989828842116263203142023847077041176123256637784673415000981381229988897345790254456106500233452539420763643763827929427007793775834706861391569450263094421964007230993091417834653673445071879584156732116004553316875701604110228588073258775197682001497416994953745377151400572921933481931382784160941841427867336439706479818571013519388422525534172364168104765195530482117252745907084144191529665785173751348008836494791493676059160581528601624704140891766318635674520489965452732863555071825430454078702971990333158070918429285131636266934341338702069801251865469057971500460715522142158023597664086060088066667649779928275648864335087541152136675918860563142565346529901244739170809840753312563864038569349644489995079885400375100391462961481080599711234827569980111956856428961412295972206987778974081140409217512184473200248174304750940778544317750866518060231984373911097653006673983899104723303623895574968747370265771910336365827684458125355024412904868181442491399899847410793089839320055405507368244993699416749855653861701701021164190357297804423947054420773887412294758643868349070071342820956673343048446680082990166624339365088794135808596047548523249054036573568428638110949852063374221135671453724826398185161271867545676000794716900241068951296048227133166073253967582356257547906169175315585108502855095229366673159254607499038206749756773160904713671695259272233574201839023205023454136247426312867808822544341746146729070652845327648977939624958622056242688332028284085533785523553253565528742324056426163754808540600042709556447293142780774577037173565916562360504629347374214461039916246067790960122229657669263650110931674499213532104072527300962257601866143356669422252133681829088839526267457361873067541307520782667625995066394147292005461269931479761065473570037183535469314318493064185449572551615330004707594108823648615770388120314470460818881195730943071371577329929122853052605801678253781061087026371941347778268364768715888788525642239112919516677964147013463110237977184566862361231872452867228967860705084052722572161529453737687239909027840937940721841704473480416829696845627326903829777184016804397718442854833475160839150177767168714015357624423920477933485663860722634069191366949474243569455466699254612340564961314752286693588245959383236079569708724251448803310200106621926930148051508364622187951283129239233997122231455323264175246230895735130194927754412068431128498370633874872179963502786750884946361272042520811110240688975849708611560953342507383893346391420867984321026562395932801578740345777866010964385938233685028626742356650117845576328006187909965314677239143354132396935939033266347470787179845104520606788136707456115341084450822452921057203872956959830813818965010789360533838286147700031694308824487664708695031084036547854107427075702896405147334929966506416030096801055259816246868340503805586560631184220616567318625291289607207640429500270120748603957176234327397915072718077966950957116592347976932782032122494146573930596828484386902843981622668656859304283663007274808633685542730634280838748580555165279542573376827675784544268969014449433039370436180437912319839995247528433885455910723601258415649161431677530163670065581494864831807528175997207101594021058012250810056652811682026402510399202408725565870150186315008172359883183262420194852054021999595526546265616227736498444638988375002601678241514128920552293556247088462990875832111120706858161226560708650299427242598738573816938424923703654629843650815818915844528305948182166056062183640107169757422977203873608391357373329732491618741149750981691770626115779258938325942221230577532275603718382831713564364640340464216593416224024770994353990133088313462392091241096800673805053360889192539647720842256880475587510130890050743396451734791236408011206449949574441153610184959679082906146811690613018218047101816607159970053948512868699383269732795618016004526355486617166732050325415514960147381010908224530641806990300332504366262403816354284881883216085305818874150110031229849150794166819139048331073602534202690399084473050078415468438178218787632407557766637941374010089667726098714257037365001116749470391632392610647029518541738479060179302203641750844847835021735023780324903153824635516352158643418356907918834366398930104021155025297084558700480152506449719953514740098890189085253911179238704138727705114932070120416648030586944569191893224740130955018545450431589676514565129014038640437774753315176550074129127978391663136332559918918466059618052982469485322319230263542441694720909820184716959550119405291598266921229636906098594805902659549930425211529822786799814326956126594441252974291533019928840761440836833343918347684902368403790698217469896968651158962618292948841715581476699407874298394171885993684951963084623770816565281812971110243806374333846706830505800855505210925768291986020351659222046311580180525679436512855426509453532015017409645980107558712189646054455723321972796631490294926951087250768071714306141645399688841927084969290132277173542211968034085177035711290136475072407412441747508250299183880793957364017214899999181432282303655330181036931015788772726358715892329597782319293612778679665234479216602307375740084840664220207579868560550631951873777805818920481557669466096618436589114986807292818864070773415425941852433880929608149886935020574939190075905123727323724407011566166197935187890953818370463022945800542164680626905878247150615439571676677399514963821250840933341889500180923558168780214584650701591240222123829546911666276821318533121469459402640692079282758609159922790230366421719990957553124264068964999586931549203691320419017308649342745192747024853839491776734575269047492475615853736951574683906260753264582786923974478576015999904997693941891949598305158419432673497028414194953221472479888367547791414275629240734787935949166515578231140616871157508221527063683135034508241246779492110271701153054397010735262972421568986913137691096690554337013717478142030545304128774583807412743855962959494585792611483443182854244521873805917071918117780049727781960875934099932570553249952027008957572703078003552042602121881651058292749960047390085159044486583595045548458246149906594030020954381868477797865073051572375174603526233968905141631952973496645221719707059763096678802543068975402056898491234529151754926202718232280537947862324528508225819687307645271992220675469555358730670472908588711152579551552945211068868022030687271321329806030891617221337857325733958997252741468749420685251019867348089487197133210402152984805247956303724687933227766780755263016955848218617692325518947465634239490530303063748994242955363782948609164872190141087238258556875847057275030533827908608769880260349957450951855815360529817010699499874667730631275866674713479268739004425302228144170869732987679459950042257965710761819036745962340689992306390693797573659262255866298125588683234503999050348483557296523933313508317857643461249356640519368719249760627840171380736048734726169548458793479100316020395709421272826069313660398208864592451130090383358272486021557802859023231232943678265722938418647309325471475864830645312493620002763740243744916809816404241120703392713426611918487438023742871544948181941531441860012126379257962696340363423187278147178235997795191136963905165712978470474305748537767132385594753573688687833951817714634786921970616738025893760399084209980437257649976611855217718316363174214470710614501557502800032462373967129673134143535709131362361779503599533514308120561918924971516755247224951565525379816350522463755663659285872647912186202050051478635424880165585585048806883377355120627635402527255203319363718639458225652619868464320803664501809307948327772437302254451850288872671450108466808543130243228539547873650175017057779361538263930961630580969630629725765357321939316096114522076656530054498386313275984166216421763835435292513804752119731150004563542750819215407493321396425476497765354940529530660058675078758408996674317158688374285668431538427794256151122476462334613925107109218387354399414410773125339017322372678466453877426051121167838227117227579288201585133723617308226405073453573365249410524600732749476974717610163532192283050145045042778214431627918417649748716966546645214134628026470484721854807727575594237405884805733382189292025942396107945525317866442579612023181545511175871624402195624942628643094351041528212557860509673917999998415505270937077557759119463208856117547756089823865739436419998647795503196799756423104842356443873310071693842779828422512958419271051058123110718955704007948737465562603195862636118386862230531805819962396057605463327083470196169839694773619184461099680040351884985494160074413636324450420745560901933971178531683619862056361979754708573418012876001672325053071558613059798937362320913505777653208837870034015969534783310569016167664105274540553175699849860692474784133479877461207900058101535098761397115713006251740549351698081319839367114636260860605087797696854505479120412867521254158355514585127936262208638405253743975977056934001124231622013925499286849932623389797279335520187500655062528046080291089742046658215965332880406532337575999189630301528629106362672476429995866361841864277772125070419366054556413063722577744188204086171840211610026404155594473937956258799037339178059663579864770760720479264287056569855041429498256163393637830710911917512166686694755513153290628865610834682787304620519941341521303791860625145829175878354537405443296780483437875428442271492919805710174620365677938141271499357090791287169286250226663860783142082083794688478647353087834492207298676843137479472009168050265307112126635195593855784106329267624736301246804548671255962748144039445411417425138040441378376914005868869826388927326469857316595854514058422413347618516534382870922354430198920188871229539646427425762821437367657665327769586191223463244251776209063524465695838485595238948927060271123676073523221225162198537253028927012496238886287342601803831118707651150441150628736514828065353416192565595140923882011424217539318140875833024044131907227506068451371118559820834860459776047036103558703540412840836693742978082132564781163598534677056454786594956284405369494193424128637705410660499257323703480622670564557676392924026009704586331936723092978732224704875876007728376838365954974466873768741566538310904866458127601178840786079725392811710872467421456432528773502531737561031214070569523968586615198029245784210092296150015956819237824853215845483769621059010338253945584272735254496464559419874766700896627087101383052362778921748629831244523473840460236095820476049549723093421249906491349095427891904099389653082937143840739908586971354420143942188350773859501433351816059035595085418092268895120945196442877285991541323771327252453916736789753945010280982478395598382354171015884918000551791722076856793121286311647169066621085795802970699244803238301387480532871634056093397168031943128030692351334039535267256779381469631632615626856929748525041050666026225129268444333577721585692426062827120354184806199408067542104576744464288055583463411529387136887346748654293181320196777485486247117997873872256294800139982024122931511043660420531417540403373643871165548412512892030516505845982004953053007525293261640513704170546634458390158850059238066010207557150147163028858398503561992702795581053879145394108422088521658561320355997317349742104709722726410885950815030855290353312601978996157811685798669270535836133705909298117671706085331989121310891822947298579730948478718487548175118374991750468681912136123090936811410107936019649566724208593855303348844459071216558474446732918351685102437876530628532721478581981218671083165615116204155300791235379313305711043850402302167218026669296713048113196112704139857972979778455238680976211934986068536985696000269292760443813485227158699825567328462806478853571870366225232600715349457592015845822640066719960818811525369344617278338758150159465463338306903291579717078833642914021463848838643615919745137461371557013543878617074092775865119321316354584645472978468725442672612183058506855094049349750733729068032971175567687303530235136891155490151962880856499400386458732911618614813066069037727162965608201428389890934263538688109833337910790788036552203126329483905734831989221800370893321350486649381474570240794953040526647594241982570093495259734235175524914597645040915741758877357600487652281971069891572616058072300679161834095005422259741445404305149639850612253331864533166522057124384518384774023397271561601379643897303116131961883886162804599315647264786237794330249865798578580638154962457113044450451170610254831716856321288296860420018109149773514624098012718636741608219088700475162416464740481531360584374285507442642455623349697577796029335829700615028951724149287374751518825284905683152721633949622368898171484687531781137258935580212956821021781169924259301961635994288029368953971839381399829681107519988107828272636330343787505285362747070557183623100222433771203503637557043208634835374044056823572536702798799051444467983241644377735623688443867596014094772872574561624098204229742431166391366583983660841419058787202713467928987634286158769584665846169668713777758990743341056164972099719211674532513931993511036669154179041930976615461367976246372252021568725665170579954400716085091385694684063135010133524352191650011171999976350939186344180312220648689276112400810785249076547299211416002633321079577941395365796711108136064388580571463687817543514286389598027398434876302399261538984957098152439182892488290389606955398322994336671270546302513108041184841806019142987443969106270801807389173510837065861183613052328504899071463901900624279721192016105191386423507038246364419744714313973052252567678811889481942923100797626609867976899611627351773447974360543192179581579797978643238512003294719703951892176725054616061935163007250607587180287558418115115961971369341845846595771110288700271385029441877055560219046110437329091633175155341419513975975914561640419776290805491521061348122429630540514431191116820601405928736533632891263199803662411345214033996070114276161108212520049295799328954596402363468531779310534520839209324603585975614929252905250225548024497574510383198456518025909843433934962928628567923910147473155732752257285125857846218326840739329580786670510313948744329367748104145826590659653934754384482189019098470636174326226910193017547631427978820723922153906007579336440903350935535443631582313723689978904722533970206250942828799353372031888403893944965094688626205836262990207861133182334809439481520636315532622424978976455744856462485235388764883633012992630998627521450865199975663192990352999253874617623615261117512953065894626412664503553238681949446290469365093889196813810526911232247077556862837583690555517974048022303053309227680704034457812421240821886388497687127922252471003637887824932498234052114664378958358898292302558119044866166876705035002562808363154104875213267296114306067754034234119343984906850109113659638480492648236212434059614047635352159172228886283590764528082680005884499786212558830933445457712148687786990100137149688670079411684118192254329106504191049825262038681651945580863375129916347821124102692106102754441910261328556439608861963733637804738072325914556861128901042569606940893471122790425152209707100437910130223518959674300575567779750346115808432701138115841867277788222967643578463135994738445510143137875320664099824850894732347606996110744459883554488011076858214110450953121455599543413006849915424888897234556094345088967068027022524329044393844759532512618104994455792546449337341203571517934229250525584302226891697857202300268729679528027249359063929213375313212720845391180874077929748606067365078055586606781746752982423079275908157482029795767306027444865719224389249570062858998389416697907686711292843897963751104328239414590164189792637631104380628014240682344425178665169800423276769400885828211120100784214973860940833054041567797926785842932037185800251381652475870464373744765952189484022851223265480213207488044822351632249546975514389269642296904635184200498989665222336154327148745374636547384110942820049000896382888599675782969038400685485920372408923743222596848220158946167700368181446547944352377898064424356373270589798684237054643692950148313629232719110087724274870028384188224762548945658473255817676543762174287235304170041586928730982463389575468810057710263900549155109232123029570108260974888798329710081310056900805185121688955272846382301045452556694198795654591550994622227473455304846305606151270330204486324397895772188504344624805604623391425733529014592814039663539370265089779458942175414747869640420345384271928582623196539618276466122674886574978172128505807872619282123015383881390133330127765341418128809881609678209746675482726277330734972109551392525046010808942966730009763159609440447788294613802244489001530954399493905155093324947398943917548136461768152248827455038213022033769253503203407745328733457909066147779524148105595593231053619184103918389629099379570389056284083654433274540972410196033480775677748829235494179947651889513861273462753474303078373602282399572120189055986050511316071801247620581851462829120306487677530803895339692713346116983821930210584131663763780193249016412562394186604481729637191850059695765745678229613985057382462508371300207878658051267061433239471594323458297595391696915663147367477952665142842074786318771201090454865375466808143267465787553723763766575777222740655140552737368165107643650269821667275768775569171869980857431981499615785438217594244895742525637874903878788291741360454096992668693667525566171056050739378737370812536036594346195963203591543316082089825166703510277187082306854059408653113855861336103209616758614417308795930766193264002067043687950597233933326239445557767519788835880841747497767993298688718160267671546567120388271786363458025762038177160279629027569315424069269527115946967124735950819654830413692884192717525998937124007444254325352644568669518457248178499125490657283194708117487705640223466333624139658111733639680928969007730155552594815108863922655745203439419136150546336110098330999697380352464921680768230308151081480528292372944860871605752333310851035030471031931123697433741868362095718118284846496943883347225499372209828440636977972493081497859464709063198880797372157778282375577286228814952637156275295201526755229061345291682900438884716943463807872456461279354552477453515392164899854032773052814391382570418170933015330259164689177097773145889933088792946576051791663572775839923563990961565046154826896195492885928628123936730757451853899558427161904990394123023303663389763854224119553931312715698670898975753401795837576288527670168692317763015916344498383529845488574058431168778209297267501661584034593486599858918430944944050997394394152622782229570119579329328569671992875130506232546872299869480580549962116726534491692156896045777814921472886287592421659551532967481887648777990286351277467272948103748631649486643223688488508464718349670059657683250588300665347159904112381335942532978477373333073098977532156016486262165644087881738295491775327805841349744439399301184437938937133369882113948340892513463729744980027498838772356757586742890610253037053519721372095574900651214234181771783889747493634166668734373805650114054368631457343725181494957213301383739669818979684196617531028870559524437133722450441841391001122279332435153337090018888418103412766429456226394509089801585005962068856687521177454447885202314893642661936495028764891453996983867826865378527238493146587675952059658592061213336825083797698644649997841619421645427062446127229991941280642014674459124099984377499414357215266571500319099647798039428242782314123306847564404947578953639899802735540439758664223924922128186367461059803826304640728756274485322806674977109520360320225310923503847295206203349286038792308416136166072345295820498952711340383936977651463289447301391654039262609160237648583681756648248179416070159325119703381764710566247452961250146200914182683360095720094305074680010273483651916862392068117638500842612274785096086181653159249619979607187305056323443886578586915581229983162609183695555319004350958740342164762114746768533009589646077199719365124848854424776569828440578801189325990912485434978115625423103965465830305964920753619442592451214477933683672822804901167662994781110258309143983772915331821697636815444745809920795343348362275957915544459525422420685867182258834439269137384783897667782936567729171598128455877282249557195014548585594557797034106669083979383038712918468850236574118698009051161267386542332473175028206039239640500407488344799589054430997638774622716605629746731444036578371822311601724522763658111632586675223148895861995133373388471301349688029316753240969226311756737759622510436821318630224813136242913193626911222105305207538293786633572975767939462707283497665529467067283231482733535063169708952823569661515941591425236668710604259627487488688817871215583044483887895994619041291302745143903334721475005365693433564667178382698789597332983118553828083758686761326455770595720914478307280765089005116554528567385126263966620762178168983027315369303648731914427547972862867046093867392903201910375839792449261329743723740706559496456860632318368588746245395483906551959130874443834202412654882536644203522191018435500551112019226500305617236393811741385731965697219082438766903092379829246323352794286815826976886457562977072140704312948873849425836243370454372048886224559039723800234766529929944443771864170370238696718599577189212602572711562925414750058193342205408360008400622238202801099350132529492970023140039078988863138815492849694596340703278277353996033935328474172932788121443995745722574535561682478580915120551318817873593809513315595436050437225715363704432196545603842819979591890311925240573618755574824565100789571872377328453741592591986929270627410519658047384455428734814669728405590392544122836486539492571437980446688330955498850476779335036143059235659889917860784853213496987172650073079562435858312669995990372313061460267232737242575343433367220127124851664026647306137881185150536443530951611798371132426700087582022890511012818266052860666715547488255802801274096473650336296573453042110445443116307377218029535915042346656932960057346973886376122751819181149518000040646765975508850995532215934512677770350231722672874059843853574945987310746117020377498569347886206849461473244823217619428700176037938025100146818273037680216331986852713799922917467649817821528000865025530544381474606093798434597379942933042081598193518603355459969509635312214265160429892763118926891041433261589036795080425051487177151222922845740596143951478817720299659473109660763629583696492444955460454219103396889103716638318964832649225303437379614497859774994429922901910782934869629781176216767479798221461011232796947058269843875037496185457617366039272065228240904519015465478826379493610037833180301812858586681490281527565235497565952640782107352755180591383059873813107902269539455716195294128050164696834401935504443700667398028058925288766287543663201910770573003704750284968345448536900892935723816522364512841823790302099301518437116157039025277050979738538300905790574492180034329241245636499137050298695999259081915697798779216906954342597336449054890146429441306529132499712536901298793665967527190419415970239149913063563260481025666460484301944359901070948429004626823446161806233038953921074448958064727427613683931070744225846066306498283165211277091711915615979433846307437838355712755958110002866255110358942786737601846904038355556104154024343663361212682795708380682216758003955725734519866638341528014968080007983939632394594341597975970516158962447450641886137333493293724234800247197057966817466897664776689365002170178969086744186231557372321209455270919461583743221011534265172974773334556617671147166275980105017625968370072373818251877772584853200532164500310786952739881530838253869382618208935275604182487419496611254578748186909580572784732116080146425022733419310578057414513443216627882389129876929934128342991167200705777060677051454225087388805856229599595903449009005388717471491323735735880045610448339375337796731619879079372852097947896346925783361588326409305184590005537572535738461406015940770556010700877122491574916893425780256264212253502375939124598842866580322743715779817078166159008752392905189005163249535212104850550810290328185361400448175890646969155757436125889254071726824868186783478481135699540274063289284309781572384754651758411476602502229380551873704842384954620075508910124310605950412020654295075914490263667771164732001945789874906003861413877319926929994501451948058715513216918565530440882365839059154443289242009795045206300411255562039270129780459404561918915058971905077592710350136791234872234661505319867441552712086693600447630309931900922123544098573800664694130309814207205184877249758566613138124988990506604478080567847811728688535611900921578925078621472200426488830841934224785624711736145723413345930633054106261234874892880158791284722251520113666766624446558068643961475721396613174832955228478814459335014056143239505753702385873147776396808949191486916624989822483283934475268040185840444806327460533363168360680340567117312755285263086310521728626497688197798444055496435944836269485710083496837067250053243415265519339291551314292515098119849365677575962232108461800346371603470813263575344191997839819671122273972788648739841141610293265493638878968719298300264541800396558028958455785791714632203847405364475521730128457516598599656101815882990892699399330426169674318408739380982845801387037886418448200172762315336336864079923390506979676401781649969607039377303443126968931389128067985640134000029993841486510009273085594883070908528967062091970133670975442386102587571806223720768128320051306332853200252540905753291356122871866293848891512148880883450473010605857402210254544092699870440669570419582032742286929841087990405045044793490720539387980170204113562527036518279835401504837891988989855223773789792669242425591888537162772779576141556649865831961842170365383324775788170038986654349992324778624400927827435178404530342025563288460049577078732833095971121410123899030667474625664546407770076887915754758757036815429212278844160659359612137679328188301083620056628674292460346927192931197395178884631537699161831587422387712400222726288330648681389867888432494702631170644582476198221686397224769000181568611638122708908622100970164359044274779485414451525362459817921335050604754683669652623263128086850751841909735572868811009453639484433959578904634113345145668427510099746461057832604492008651542462533653196238276173302579224602932309354271878467044930834649125676066792205273649285305526050596870428810076606505018468487731676227847681632071617949641379160473218993582800003713270415193995847577237413157778636994363420281043576747849490992984523565702139763281299008600111563558751790757959373941165730139793500131451854879231649928710737308152241178877246989166848381850890101085545702470021450062178214593619522036132315142658620703282184903497698396193970332498618337745093029608696054153902380020528782971220634799865491619147337138812187050577528334727139858048767032863121300785457337726489667314225701586812909614680973522763985384608683501454562451299427870962704399112855860419608006905910956196923851972318635138313886410972860757991740099690126782515593503464318359298226035918340819440869485604923543286006568314196466552563828792569332002586061551286649701746879017926151126400206772790860482306139749051355741120080574883931868175231333569992634952143685785938168171694273621565741862592671683076701707335702634270514961679794870666881383630720664088062608527689926195610191856616917198169099585078325535201898688523651335204719786435420699825626990232208226426936175597545216031315512079870729831946070557238729210584616328504237833096857414007946296054574512156293411438537004218465605743778255929419005956176498177041782792045764526166472385547216639814289325946911543191013712387327424309361693472266724033876919502605288464602875310584719132346014318868797239832650335717839942470765259247068019453669597795936828790075293515645668411944654186602587084211467230519734812342999877620514098087804669758532779024597574514970136645289945300238526988787866536817663589785328756002040181284312218136909570757043343271288909211647076168586460367451127399300525331618702989752202398785226392807554290416929232348248630975373200921794766153059319268164522265605256213895638404944211544281310051735608022861711824682701332783342389231419338619637887142995316888013296942406684562714050925986124189884202980480576217590546046680617608442661226628128708078604438015384658037812295506167493382577944019542086753482153990775082805220727282778212653812544237457010786754520648880575752483586454658769774223511736623503425527903166311176252435773108746575500895354736172476271554806167206071331991530862197497624376274805969079245088277444433987291056876727049002196171884549148017019150789000549842191075043713686012494942529633810183246257911310463952049849628602383306652159138262173808718848742946349367628317591423337212757366959289012549398156997782591122179979516123996039415979359557146830509830138487710105389062962725162062402931321509236883542280243554256955088873026703150402358902021418912294036559591726255363729483781802909799849328369909861860214112062686311324989620253594460910319095423159943616265202668339038187144137602292670511684642232693796781896856073575127832498326097645881981568516266329999492560329563790458898504137058848433280403568114356473064521312518793009218192113169140289488641086742322586775766095457325710443905259956130084681923665854852880170255352700652636410065095669497521153734613692352746809960061300772736625413142399582090064053840460013165451024216519576153457094399258036473710099257505626127778938141001640476049096862800076197148026767277164398952753800876470922548848957068187431195389449683004157030337148021783799733856396686865850513467733603334409764674285525556573781905511374302155337084509007765673520712895603781325318040697515197780374049563825490885595148247131963931365044248157908239507239383023770371872933792984592315141624838610213707723772379632061582957546103486868806663571308200479785052942244232702625815636798565240394137125824124729718648079291066339038523097234626607142681083158813185271122014297144156650963761971976087903315951313151510939836113060450198305606591824810491613538518577833197207184373550175466929450859825071371055419332437300777441447287459824212452337035235781666635927141857393150259854173026228000556913194086080475471426666911123973920641394140268741310405562253307963675409118419336212635558655576500603336355728271827222257740787064954852911303600876864108479708774471078226759764443582270914280200564052772056165475133315359017011345079386362676561695257101835380359231334919118314695297111106709027910400000388915219636186274218251181893039924601081293946978711938489461696322999705619996353048700634275085039847092441162466236235348576396008079123924834542364106522420357359321767624805549883757732524350063055342862725567850764481955235580589748326883429638827901709118988960499401092745753130719102558867754059710149192123896002680176526355924808343653650321496702140689854372969492194208854937729104930476671663047590527921486490325451647710080969595593026388896434164347970987007118342688771084164820458285963417664847357748978008458905084743042139662972838010721096581100932613374067147457332191880734190959312202017027123715593066797732060405208594933549283139967823749133731748667455172534244277101751870168131889013329215818005011858814071955225490363535208381056426103943036722801700080778953129034686850248022387079838774294331597076807445950455625566467052146606734016645579432786519371900635084229396849774930279024764770667333743155227183555604476351465304225419974921215469721131314844513118064047375610726225846339552420144313650669335136595584787796165372610763788273402053142439853510332273112307613199698130628497440860605000277528879051537493279549713827733652955707897971465271369429668760901133490087521656005631690548086602352369454749937738149820267095459656282578999690745064960037252086970872420583857875900906060712335211448004938127342388054751733941599730703073963645946059067648641659972312408944741825894576619773947534184902886146176281310686718476063259767960928668235687559981406019776445485934127602050375680869597369463224860746261449967928443330690091173980556414587431089860125382476785523092505570941480805090473638309995889718991658035080195812703531177058343654408188314559073657354644511337077099969050375845646150153303781831991581253001797355904103187613259371411381767006507275988278913497712603376823453465193034903441182966523922823379241235377682707309849835597722593565928486598844105380149063061720377645247493668214067127608361500367832010587323509619765909129153644713918162833741249941169412241130076764348527354837203610534035379586188608640426155885218436313927955484394402482445129742059961668626684383805057187400772006247958364438280701147623282405663733723729193897374201209192220342842806381064038800654109299557468903332922676692022026770791617190558524253312618570634035119282905980790082593832749819519358664753824897729771261315350958986979203872150059593011351805490810559435306721318384167699901515675983626444781646900185353908162021215575253366011835033509525405546232255405404848110919579239476842859198449540153346158887306454673180979248286256432858522693032301160222539691623388241528942381822671523089950182289990242467059979980269883697175838326323234420290192948587774992269855162180676805064543862099332019450534028548317593341545005486557995742097414095107249486944477534668047420036903565361846261919186910928393417445743132388005418493092315373007593382569817990702520358925701842920362547656473935241614710413140857632001839983590434926194011656070169069941024196117774006185391666428359721335653441718958025945289726459698725898433620263697377323729113786030432357645045376884192217375275601576655134738721936113441168893179069085397664510539425649013246205385026467425326683095017054412691117604359695936201108748945817397655913719628571659485243742246064524246306605258575457608631250095043569964057896929078234894053317382220368093786510979698800718102996737360935439134631449338999057735732955551278465756076915637219444400537136322477538879991539294907243085950458558598578627669583131311842614782515611392489385442167369532087857480907299114231234521926611293584148518670853607685977882020861396625817956420691897184726624173583528828797105054233340376988974936043776873249612999710283600689735216819781688950781159779963621889226454240243890836529901623396545143758048408288404539150721663357870872523098905632851062781695775233630093614760641323393880462644808046832241463427467298491810658913577162757034047563418249380845655715102099844111352102009972266259956020739167335315891167067514543176561261814677306438417438559162284193656650194711077030166262754280492825088645010190144889458770223446534071953712007478733833797883155944883955108139954406777527467913535055964711259956166748984998019457931094732932373933299270443781353449254874704905933337816695152578622788248304631877173569280794531207847332239718693784054348580945914896765889200285659312562483895629921112894424218314753504980284986599568818719710524090581476134696482706732738637731585027133189129807405650104608048663354707351768491869067281421554703274154959290186746144417672739115941011174050063154269400479591606096329275182088814819257507818058787871801984310008444378389872099350622714408135667369264369690704272775476965587145560921668164854514852415009131305295713758108774578937321443296749119421912774970828043117099687772356812499723581203252816778045180415850588175711496718180201675384880728700611704996758503937981823575617602449340833568905460800301886828610083239106179435163010608165375645277153679719422387649912742815982259316826405479784425415152554657263358149464537717374990840753342419504366294827983724797670430971994987889887597522082256982445520797206812559340627855252614585418624193320857215289122999782860169559593097072502023753152682736505074528035607746133211150359212783062591497789112597256239957667796393637735400142828972570864870614699862960671197856905072845281191495829211704722920255408415066610601479436592440958144184789278748980058295964411291088540685142469629414734817889608808729737550624350653241418647880965495444549012903539094234760053383263026611702931486515632657587606620882566718177094651896852403017983193316018590412179968634361722621595902840465377416057689061081970721749767185818857438687173696518783535883060224036636841616681078862537561035002128126762907326802033000480637364992428687576105108397785274141313589105061529432938280117962604021885270635823614955192028294280674140755172367337188012565220198768361965953453191344707460772656067021357735803572785960733069660837968648661969380389295316720055227928702681656005232378914094100173141563988743872063586585447158368945928874953519249190122912344921780706080971530896073743495078695489796508602572334535910467835968675293623082423211959317340937010478801235439896157011249739795217247243933926535546198242161757314113209946051911743574446793451378367610677313035851895386477585091212787674984615788192235522770779015145921285260129005178188559620690440746863827877722924013769104549812324808337660613567001493979161916352545033989413403692601053639703958714938453987879526957271141874057992592868225336879687972069367716882757457358003502585295970918426041489588202151225536800974295689241134899096402926328673350537450287368600164776501036255940534743411694608188814656668088603294243042762798143601669881310864614855915206352990135498456054553486957606391072748403281454168014678800889765320294678825424275552747399717877225847777811094924670575773783644918705159007399158923172506931125392346661838361163699706038339642926320262582769884797956396167659275635585446383646251948733306405807613430259101980748267206374334813663083495497049766811981455291836468342427340283724532078483638446406959521406433540889024408116748961395229743994557152041515987357606151449056003587822803007050825265737088689944584914376350869365830285953244842323090169638302529198488438142341626220733435394095035035312741220920877931977605937389830338851542270819434451147816408249732589154746227021439589629183421263265181072425511684383805641735530912948259149300362095492795879848834977267672029237089480356909524211243030910561242101267704900052517124764429371802291252237968663346689244697678486406404475285275559952377615965021467904927046384211484632203602592990279456622672316043839014682503484567788113426313386575989269398930273174149907759695157833618107095465583528007359394874934838342799890905420921354224213405648207589754853117622365125116834710240937358889792199827184693574325284306693491160803175481449646777524260842902810715728252579795128797581314236066569941609231750131791529772629818681009015629003129252114333865376151392523078016802805413142784705238817414873661970118057512083449693472938422786395896423636326184595598319747305166984348193081597179165994326851199404823114776371429553436580349696334311185709069731250722751774296460394704737942887609015927937460345665200589181765433125509084118542109167895013026107152824577543220151965708169891741826755224206537767365325433391622365013253364635356864583251854799480506386679097521752196959097895151790481813032962928245646824874276171272227501803815051929023326197115848098137814018342278585172083890946763564551711884243887175619826557029177737598414824012656280606348749568912808112704976768927941092514076797983140332316753330196505640195158198033980289417361098780370393117116533423662535132229697078529379231044390123715958096935013156624718074050831707483268197534307103070419898716419100957167405546230105658371726683085417880568578981025427430004114708363547703247404594047146503771267249431375646297099963713461252405259076462681482096891257529214341588346353742774751228799436565153930619799039223337688312115307176648955623034316213584767080651084042465689856469665065301353575913764095835935779877944080412229918725740906756267159164741879002739177989053599901509468489205392450348237715317805535203925367599587937523868977034619562653328526351394660602124575111643142207534148295479714667739130652704644378093491610824749072127016354896699735614198243519986388035535108138753704220303468708885591430187663527714339102466413035578267226338679265581008602236654662856125264906733228136922307132594835718772356809562032540517402182768747824600942387523264976451897727936263771758674897966404941092275934105607609974322410135468132219409418298523421049361358315829517817075937444897301821853813723310673829746792415098947190052924896728587416642092370011228600494514182397937256442642521366688153203409876040468536014070684067089777366781578060498534730750676706519871499785167719705692761404781670184099245109518826483139135126100440227195008709542253331704246950460127230951434565937646834958857269519404817578426144651656852748163225476600006993007076168282271300811497822914913947340787472878989331775237287267102656184538756813545809685203359301856721558662621418194562080891711730895924758197952292921539232934580769852514512973365076839388483044496697850788078013481927318293513481377374800705071323248301563722926863969539614646992530273329684575489896173224132225724227722950362649101037026244892783954918692650348392695293405230095574290018095395905148578335988942394077293303977343917078312844443631325809182054918068564108936601976262275737096244438809632614656189116669025245022659436389864324681028120933301306391838720551940762642390230238631833468568991339743494783666979287883485285171807540519560465098785909392232606277981781148795410394719304098090968432109172702693520242888894777228474293137746484245123409779474408750789989099030773045576654356887694180349299128686129614963881179038209145885926183256923458854031209056149627880208283096706786668338465012507001640830644887055188762565665127455216333540856887845009326404151295388893707554575212473381034174512373222483697156865565204660858606054537373269281750342863230482481575090121739269256447208791089860575474717128312364552136821728038020026961443586287063824561535199199819562341452557581933174374960408695512925271010468495518115012960969966804167911740089567545576446476204859523611002800108921836578657581045852568263282127012148707926817138060417287618873691563947294591727498774678948851677831298612899390918531684235542662068551641151323547733152180312146309025648326493073887342121060548065517349864615590221232277384294791862372668210066785063164911807840432085779974582900485226285801446337693028833381943863123805188704523894972661955135217788829164644833336962595632909586342483376744330251706599513715236673926336384080935302858299024085283968185144625680187794729915876991118841549122172426638341582632178104822720430399452862991662030915820885433340061366795381541447164399066809504660379571822332279743901465374239730739627683009394190962818437789355862699268919394163388827443143329091693384072711567120226755515123029536663508810103158809620997382847852477157315520947274358791133519888442580411264149255398308821202651503817619369502140673897954286263210747480442657551757894714427875394437856205926203091820705540245462957897923639919555166749401676760161421953259342672056579245860539335957096830154449741439012049407837486011317891620779426845251342524585585983828513540278711567121827938856436960581297359410579689216466528288033855471949032218211819350921800813557423633508890695160111039770870498080388205458154656888247122977481585110805546820670019774355884115504018629303607979973291733889236661611558132699632200745172981117253548357624350943685492616211540830368311445867246092593095310197860666933806532466060118695405590222812620721215409608845302714307781626396324720276440527463344760434256593544540160365586433394919739262883591070196476177203029076175209598474488940820856232271637918383031911883293760268962340490334008731285473928992061141351352486772679980268102193871950040785152401677883530524758989175019095637247343113451720219349477285969061037295946599864036201599286577348039198630267613247795737064118590364053113685831952801221280401388446897948390799140187696755778246458000433374561574658535737044209611314791217161060524302756460946587559405119182279530694224935652826709211272655862601274306325076362598476981771426031470497940934057470399245346265571903428134240770086697169441005565479645404259702305520031113563517246447334168123938221729752086409694594006387561385950333421995152473767556009530317819101176090045980476082390077720971544001498207423412818659030490907960262168453758524092565202851355497305809637375323368255491669636885804881471224283622360189650606950282456912226272466672882539764403345644182900641948460767806004419435818285186937029255384483779349761030640283802542404819918675357486621052347886075171478736531444906231399607286542892486426207951199399321173386034892770277442589931863915188093238980283609270502636933253418545449147798014772549135652989105570924983910968950871940439106342312230010945158191029097334812706163828069213411228012781047204603533504418844413867364652175709261864471330424895382835172369357730044911907048682848098848700353642581816566992223193132053984245443461384554145791896905608133717523542745606961847539069833169909259068902717699094407360433782976155777654553956403085108042187320421362138876876957148891041865676780739578723633047689608796960936301203669587401826893116052390362172160590604567099820177702745557899619556891054121723482622129615004001193970955963477031459033202573236274340596925174261684837031749429677220007101997530135996968426644007749696415249413799680052463161025023133451407743798108422498424983110643570151211749188922132334800691734378823509153638248589332486072458243702679667454921401715259901006299826419120255346848670132064015839630929761621209937386986843918180112162205513789390935253164945647186872012364670355664650490242254595994429279095547345999110752348314197540674269677998404729459712189170439877709653913553868480551354045925520854330258455331542280716022561653990308554650332833062454956845442390754067348990668326418989441730881004627099760144763667670092502201441639690314333410446354412126805999672917052811489293733852566485124571234601372100500952926664892977508827652539762920328902447928514354228634433979667334349478534003514891098216187657738324216336034761037148989299739371272647923602391038610131836609719728817331211962168044540213516005098564021881116470657727798530081390261933231717014923932424626975172696262201602409396307036377360906969408770938305547682363392607981898197150422387576971509163890330951569335217919235999234181685972380362999495634829568554903196509132644577676166956343782391675048728898181502349043571701198931185520153268878974317384932071849086517596020037650105086353109645475605312060093267616867673585639903540898529665580485163177630378135330468350961648744003132989263214424806295487326453935787293074080447598724750143702607701352625075243388694982274015239751714987327305832237556920663387528282864328050820872515244973444859257150861664082625253771559143837885667257001197695952548182815080914942782794529431441505985601702638758494016028501449470413366173641006152694985311221074847978527032828385253769916590761523433825076546600687145988561804497720317716648867880397060893985306913306713547960020974113075061794188880332395118407980798374368444829106399671786661235023564903956819438763281437099979078455531530679225373985948969876732059494065668906844463708886467293257707625186294008437059277517622154356849692039603741086060042350728140911966641687992779668926422821028963253235236803091239696737327301939115546736090408998545672256239924932708197731264658353046716162153430645460707167030550613379127481758138174766927637012224470339555115663264557744406492123951942111523058019103237320209559065952290587115052319292301313151655161493523431104242315557088376899560873943969359772780484793637657352012867305097049225553916626609693453465002763869898210467334705128702099543790269383061582786375565811133028684535151151474125632291778600947641902254431241039134766100984580272317646798324200228177312352829109563343016262600558104160043817118748566257448537179077321344535574034849142332456047478205080292346744628228751404119218442396658652138165480533987360324081963580004830671129084914717829703581240893715328345123734070982639657285147308137821422052870512735797597743332497262426841741202961945370408361292305312544240468581111693856209578329224948809297770273830686694951944279824691101801926995235988150676142938103221321057630670410599730686417878933091306039076554581444054069915897236257665529176679544163274193859934159883892796281376109844959161766223748946756349409682041390642725728559521479342543020352072487187336635308906256751159760982440726330967957260951712191321462695822198735162431138217586780411577870453219632080535946735060074731694511261592911566831678427432825774424211556084621067885477191988186070446752497412364868690654459191371278466427614388321751919149211705674224313296138640184582422498521795341850918881128211470652798442341799246293053470974730182833751463282357236250228659790753729310251746731962111621039277990472329493389204382837130931917834331090488943982012874381887170924017468478333372303422997485654466239890190851503548822379480036126563941814152024984982439580198660646135786829928456496552999347469140464652421505482791723146830120507029480301294253296135524268260878095180159111375689316922078949360605473251241221783441520654922582148792387315628074456403396515687676514809731399165027622562194573838629333300406608274997797105449217721730704076384334048110920688141734643763857183543324395224327054323302753625723294259741034278027164667808184632207405921176216441179571986547234655011888891350674520980183001082038019786321223173388552193193417622698582169281305539889938509080986632394285066133192689745743333688776595787335168751253854669138196337567850336544563244904270064928140455827270682584364374612981263143934808020404176151880637493421831420509886221255699575805989546288114527265969566184794980335762364730325951299846305894146278049431159061659526261739879614742099760346181416081710968657764578458836282863021458153242596249337022437457849730002588384381422798164965807812708959789856946304622264041612458878346763284963788535149546889776110400285103136502558572555829253771055271901579305029768285974844636002160606273061791207991444393398948049044726781758925723324737266925794984514638469664251444689582138229500363151523188560922428969468905228046262163342636481663568940297621255414167223659285057550950887604500071763669785398674783414421495417439802767111380126849048082313441338679629198835237796167504034341578392738179682685895463459961924960579494100968743996440820517017321043052520396946165257183431300975631584317428125432290603849090136220192001741560234159466263781255131874320825097369278412038694317470834881528962655760753851155184398685304801764004853709449010571668116413682314736936458117345810195340529128026721578894701957187390565651853584131309247474518555800428613612816638563968719659952416339364544211628885414694288854243639642158933168213151609770937885242506880932492462640812842946897201643243157619493812984100932762077672429307600172543451839627334064316635412642482122434990998221782848203675509058460174425057190490998494159701028893540889828896726136689338551776076422760197165802024763256270244301277421727330384327852371263424154238383214674301095405503600160047202040706732325118178246539798344609347586598382946734900459624367669676939612564006104559241476951029051491681079986989693794592968778591675687028464881893351459460066452760153264362784692910037150580289453224873312457788539187197676672493803862890457613901058259506211655501803586358931445431965190316504721004307463405394200079984386444232941023864068062380966237546844881488567641161571285925156170679468475635315186799893712456197679219106361117021295133155824928448366100889956615242888330590261227529422799325114536726215773571841741534181510841867278649403388987810688645516264340161225179902091525604768938284463603197525128820576225969839706215614746761077229015699809324221604692699237016215311074533788771091333308009955779441811731008424952305271761279534668628360896774614618820254357333878141680144536861266075006074837156769882980324895403053400316836020583411828497300672854442023989093647724190801182517553501760398800299344951055682862349069048989924686542449077878760228479152870852301066665595048177304525161007859092684432253237058821345578263141242639787084910317379523933800936507601422088159167262628973269977749759445601484204697792755656801679774256017745079976781014583013810111087953923078903462193339760829167606081475345040695326307423928235004908855239015011327225179086375027559577633611825388312949919630940669372788893544269593862156203609601259272725229786839344217532325385187883735335311055308760464848195715494792346406605589043241363328259239008619201277622311305940841423060208441346180805119139394868642888290646098339166622382893524834921260042672526409187896358169579881137544456357766337664676863094641747209675782781975307659697937936766029084621119143970015909114685045170335104287450917940812667198515854611238070905311043686393934039116453767638976681716707949554148238715880176953016060541081151354769651316839553993200431123296591456835915254079703277777214228458499147872057490535697100479763971155453250748583677720677764248602759535872560628996252792149849396658123142095589739734852261876511960567753491750757442484614802246426344349970533913255508705433137953536175796325159569928824670180049719942188182743227673312891226796183129717893528951714170644770975637794382505158484078558185374789166146948325077194808936340692381621264407253062788442054463574525334739617987052967372497699665504493655468461516360032179628396165125466501115297555774564965838534925501809086904401599603623842252490257105881963877632271479734064489633153812986045489022693758515678101424813858127265841181202741751985667731424078636623470292193325031165185078011484381613661949127351366465580276189775860211621061748879583670707769666086334566127289188220449360442778535824181895893772276572274359500824732783755559395033162931271959745086479190563069206559752618978234989772716845491589054893187147973032160924616050382698483354938399598891251297660027532926130961013970094139501866585776406821284163011019782163077540796540795143145701966065793396439727033119549738302899963871977919468595292994283876407540376529330525069194123497889005991401082644697827185555072732290217812123315872816839874091656058508005763122983283165695305060486360941294716039927815632221589748043151340897193290794261070914815908958233076095903239011203130890222306615831432761345729158606907572524650528530419749713663852681116465226940037508551158795042550800190446752499181039507339140403589551697877745109756280668323096999685856239909495956900088095937832536983871607884105377520879627932446506967959297103462171072211589290867621489366953318085060592970389508385825007828148805204086119634467703816741283498809895621920035125365406857247524805390321609885757366162298866734261684595337235044857316736453759491359766281274573798175733589057825825559235688273140087748819612035647146228859081673551779889937709753125110979206306063247436953217704195016928185245669370940112189498854965991669579729556326070977677365953867848372274871110060162245423919075623752829991646502322254115269010284029636412909753380232678363911542565084479671591178533738310286652683850110968608444876632641970715514610641259499703500018665902208371360234366848491108609231463697366084902233345077519188118343449228533621549588638678281286135646142485241112396232592108371126524701479049396048460900630702543159105380124593238203559631338164384723544080333959848962198590945602642704260106363905683334044380412397124228491913058072173372444949324579168552030272953425476637151755398679394774030314640870539950454965361439992672547241266953549988759364215353473996938370302450069520310326088226106948252901874841349664567704588011492954571377957277752091198432831722917359381774087321423171838828988332185354664872939442360548411205567928579727665057846101890792983596385278844290538608547655607154638268920612916574506866835964379460336161340987393712816152895674376415836098298484317999042829603779379969390083547849791889368571219984957274208048776106626750110907993251171535452345943898504644829396052763437804682957636092112346209379857097312303760888576048934631192740775784298506474515718013992741868839076965561367816341828674980684961652072219190445719803560685552727843201314371613991938441650222677092073812890214419371241642726395263325314627012691745961816669303494153466241204957378171939384225431419306032312947011983944294412172983973669194583022401304376735012860038167466614593240468463354171188466073502358374056951993167109328963273432987034776955807419513851757720180070540209656320249607435399693226016925751489379158321579371980180058087367872572272962757479557070063681074206750824408078669636861343260885340051056297151288119900036476096123416731163121393873151830148327379956183472004060931903172810476767542631151978640253838165373036781225085579885625743319737906570157698935431761246059119773114761664756011801171529306333960430816920646472857442072897821956600120501841999862879234337972441339474113776946825777141230458650729260415970707108883792576635208951765142223444647872456477046364566474109293778679002357725235093975500973788204117055151062899774278027286301018602932163347734043978169024171136969023182008027595429003920825849834355903856209575304886468257407582757713134290335889975241363814419766449636237928464441647943270973793935115268018438409275279594719987177431250871069076873555739677777353110312974482619729741041240107336599141759200439623882539320137549311169765843379305693094988736978627287628530402700644261789366716654781450439022461736537855895283002855861083345190361135448533113630803715417974582589299025796483630600473235494291091645151910921036537243847989389616559177105149784004726021075491198273930832746317517173346202046698308192051178887846812226376249543350746758513216879800987802441493602692256802315699804464466895615847962261422251940025886584635922835935172043230565594679536599591101350031707727291189424704912991198322187755183769093435210447608892583706385602477428951676552487801112938063297324856813242542537725638982843357280001938375037700709987708125224053776697289132390084024572468987540194783649201868103856128559889299012383513252457288743875380933443841080598672789345873361899264535798206772110055929278889891067883287933908895445362111563808260436872515744399400747144015727960449471252010560569950474474804070155617156599402541321354942103021167659973032453695171457897970953534871132938515150338774202903533965197498589368490333488538153713188402292527273532111148055517617522596972553298985064480836980597920319787049666330939395802904231804230575901249586358884819485001230046297386257611505318511812679815917378482016604849212750125579473009824588105295033399313196483554778000368528643078491151827759738168314002019794962655623673238415537761432076604726895270356892926122647606740638209923202618143463213557292573653256975325214168403689002425374297304095574516010621296910060924996123533154932578766227310648772053925350043032015277612320773538062776812786483858475657239251726170840039070388979819791044841787536836879296640374455894808091642523338684972394375946262362907142685157418801001254447781511338372552134200060079919989875331335947595504890568574801736743039471115933231467397422779385186680830300985276988581942901097473834622545881049978566594821431622005748387185848211959706733915158515333419343308664573284680524187213947690941803512109846909078619428657467708792190201845935204671604484445332292689631889594460728900187691177759428968896298262571599082673708077061501535784258682543019140935662316528393516161984101233754289071647924792137629919947066875156835504105362829459066827026813324091744973077159598068343837391791315955034210711049154922823639308515911463595685972144599306501037004497198293657930773755810261635244080548345290479571047092585322374499509070216042652920587070220317934744777335515618576995291318828109398149453617388404258617025877484956192826296134685472406708336434959213654308121341280371410172159213462950924246404402801099943879258437865479849078585085592469613096892602867763380427873325052225596694126400032670537741015856389222411111134707646842575668088415209137261250585333564444512893257343322364580069581172495450154507603129805156614770985350301786939483230604054662184206394002206460090257029701792129829123213024524461128313455604801508788122730203465285129331799288734754960375224164546274278774665813465076958553890494583907215250265807453467330796095103830314459200928112868440546725206233168717268958039591578031987273116328897833933267964546073067482099224609263562025669252318906694466568815259864285746086894142347750039878774714539707401992919891033017921096391696931030911979654474261622404066972861036321461055060421810069308861612087439655802314635027820799440698804391092341057151364750605314649227714500186558616947912423978943921914771506455475906422681285557846704685952835386071382858066940978126907236391791825403455867284971320599567936208813126708115635348692370512142577335060469014553233476167166480396162873271837084551996746275290011089933964155269774434351190669815081767196139005362825179191599302692321309373091687602665462297296614088901440000804716835916486685974064535965607922048238041657251019377803238598976805379296187642054835841470053979155834179152516856715266653498635281780173732839514732541191314939154102330444077860695580329950147282622760718907380692794301195399973696060003479382595452215375608235014289784923342276708342887604255200366629778935510766401400292776567227483909783191083546424958084440798601592716071327206686955025218593642925333308492741622180851467920952016288360797953860434023050252962363430880070830331478723092508234335639965901204956362917542821807636232641894473326175104787049885757800642034877188278585517120861222427410339277018359058412773787050190819913815164100098506185574290305890362549602579491272013235307867367342570431859882087930575614026312615012385888094507192298737132349062873635803560051918359650635984413930709073063057249308614868653141451774139743946827994968285608205938188643654803715228171497074328044469442039671596310644186779358021265488121863530516332133783674854583702890851868048232748627333942930602804192720363144337296088480936559465150232832744124952534723841913758897656813163115523819686162203147488048453134149311150415081011814099471551563179872917255809347165453246420001946130677652402650945950925085710277043256522699576502750222903211763413236265116489184832198783295792484869103459550935034591456090030210776795303855908470737253174079871164072267277320414186567151388773638454777302727101332291223414224358402001088036752490279783436445267718060907767495243210394097522321095561261227378690316488268896037537173454693835689310688842191112722280477688192619253487434766241559019324050824854758277780733790688528553349101120718950282883716503350838432733003566018924526867322192057133956045647005595974996340519471881449550869257701871816430441607731759747052550688131821135577711780844181273488847621065734471432626317497886675462986341908505680243798688057865401133645826250914699809703225427960889555308875105260277791863708451018833705689882429123727077704163341881818359294743673810337449537086536134460011945696729296311236793356719334009877144774073874571956657802040345611767248653354771146910218752123003713222405581667563942608342174432043562380106313664320989098879899436093557610775626335818955029123005902332256984282038738299935421323591571658226574827289045224230893019708726397905980170842155319105299565296068389898873465343634141408394013662319678710551139311498497082660750250640931444630146718854927021504665646939756296820490608601704167604912178953092564387496695637374877247349805483006526968458180933552472259569147705504131336025654208189209038650158567718907479268162185841202704492169335727608696727278454872813061894094265829699893252951335433466115781615306157395728626113974490405073350508104432418582404107258301011280059299353817319553294621230714774790632416544082736304151797160948270202745509941512015578867631771775605065917684718641154871397793522519800460783968593106703646569219866657551547910847746975546150368321219583968330630843514762825960189376533733866919087820657716736370876870488298385481816884210778754324174153857310965231486393069980198324561349749761464949992040737016735918704696329832721692806692391587608403544838604056775633460068099157449728127465325617252085169568296490314421086828821560292436114743149306878336207274081857735462410848530187387654498602501986767985042428167842036838670011834106589280394600206278378014498900934332883643729744946168670359380020932506163291653534126366860149797224759734809273105995020141964595333588434080743776818212369258123109608145302350934483140926959027998598809962586091809007282060069550063230918435060451192089994007746838127357523939182021387676117195570581757741925697373645128509813899272845165941523998278271578748855760016510498701014579822396319388137367524750547566118800120434108931611860517608073004014776191200095804761055155451577539529903762619133749399924809846042850859652285944963636230033712065388422511975268174701783479000088989028489914489679146020318233029038597361460124955265298183017455853957769800593524892212511022067455844255547503811189353071926194695641563876346671608479110351961902540148558686725087206968935854793682569053075953973023201169907527994581036717460506005027597115000947088780341529895353911179824550981920289057794329192794112988270410576319864567830573359596667046743047616964039448886854925231879534362250041033943453043886185953163793521474516805612954162680100635616887249742250603932909887856838897922990300135660628681178049875825324940717256001478620484179414292652798944828239211310389689940333280547324638536480288653572681003049493981131352655000545823489928026017950237619376453972724876590285975974832941968927237586191375521487550448845625974110962130149380709162401885495440333063201612231120616885322881234906606876665695689210857176609617899395935635323147109674399502881328657771149257076023164076939934532980222505271411312670630426803235465884433228119957710945609851861319910561608951669947073874239241154704750566913991592278913279871628546911617917640560689336185357148922270326076330593340408289509963699446404995948967979284145434707882415681797352330689963644018124638362863692464724378303609949710839395613703046572689206658358109029480054220512273138014082613235276943229302087294731574792770514990443196716337498099622076959327665005305499960789172922762944245580136606166674607812765151737312628848137418249659754162112121822682963040527656474678043567576295559713121614961523014980007544422300770715703366130826020434096556626529917585869191616091629206655221601055270764307582952783986182091928387446056410854338352287707665411025303633487820544900744523659262164475347960421692415694766635326765115370584920140353808541068530581533135745867911247293851189921972964203417267973124468007764107048859261251700536856566009761694440184837162067912620292967253404872169459181273942076629223897827448035897872955204241216971073825205584566953943611487962633386036163404207955853775932006212029977780071680076650590557292014732066760917979114281039692377455981092381221581135786542081838304852133678409341433600129361490226492068622253256385507028658758447027747776373077593398841138442639428359407837533680271430542737054138153190572588728181335373884634970638941149194420944952163697690495867738601776866094633917584936285737403176012220159520406660616427091610146906030921574382230693479575536631053689533090814592327512113494944310914562142030906438837681109323556993576378850724613426641747594854570780160723426901306855050369829629190717436968892586645914002478887487246668484008097986302989092765747947893662039909506456554955355741873246313913976299134532384881040843282599482424082202563880505567835789634156800167072635346996632929341539789130597257809659735670627250515622910831855239596800455811391957927813752248760518782127857392578564227730418283079210578144001707055064046986344701360490294659430696339265565110923465259026722685567135093974501464127672411558923384183492209163945968760772539109538888461814039902390880361933170405916187345096976915510841381849258537415699740531852991834923627044815887209401705140280880667160866200072590484010048647302472990663905052718534861261084996663718074457600491520175052014718252130114734975866286064044096975181139396287498242974107325181125009943501292878489886056299017164625066974628444714131544900752268386487161654605142578877936034514324021335330175737052170320567361246131159806304852213988845458673898963533706392696852673713691698239053028623704378155687678936471410604759217410931273220609405939721605635282027899269740155240462401161351232592223406372344601291871677328557291987657601284052984182107892318330466611151180121702774057253532414748493429233243827378522505659670630498622139328384407680729464452267697805431725942046729319169436871366434628577817896727285167964986951091463231928032859407961812139025353290910158085581869907145743194966908175912871868217948868067238980398914338995734802106413373631622921974921992964238564868750496779929566526674533534391211092680479216443165694386648527848244855817253016064661542879980327932658752350578907998217638378323591026749243915714140262856462952663227322081470908168056467666662939829786161711917347608315601796005181005326426684828317595830445551120487957440619828617694403272767849445312900248075387494918675474604263633697088624241349170961420254229875348242293882737393639142102131607517132390256539372868885825237353231972709056820673991232192520505736667625408114660848544309985359298015556860763288022900315751353140778561114226262207938781465797697464064206241491386703955295108287246834964749020072124825013320200486226402387713716676403596390663355619312752470426171407346592719167800536500297281754344075813301098464665057760775140851911668077811871486484237970480806305270971313876784179839551065026676948407744815815592960426247122583527523135626219439912467954706311067042873143334273002421584350225374195520200353563464892902566585940792568886598410356536141309444466073156651466429570589683436641594136747519638657859671916681641058796069348968144997541184594601911877895995670373825124075965834235666905835191429381520239036725017545723755872066850232077306337339328961402794991584692284617789422547461685391838906448979014028403142598118247895437824990214897686089686181806868828721617477726511955609384975783560120439141588079090102211222968735460021648583979843783821187859166632909229110178722494898482575219810256428958584114853268667153424891629268137683384173021184310817751883685086354594725843344144864634879359842318291877651534643645082469081903627091371796052106057399810258972598787023079415502658677260257268144838150185770372745097637870126655501816516067408642388687039115515821208397909071390585968496931954983195764132678230143815795270691244807939742615424060795656518169714690377354391320523026724514243801804130949845206293331191367406407199536394241154333095529700711144542303008119108582322254400343008596451652981928292424033637016387188539822825859744032599962749650077362904464993451908510919833340001095254241487063788709514293806360710365903455597114385641292521185606246293158574091684488748290150957164135461253910845084699220863039480086973367002123949422955023440062392888509377960922418989453606705210408618819522871545270392365423987007835015157679481109310029582114482340131292511986547169155425048876114313810740772814757700702816662163168567081060782125848779249519388835969550971900427866106570195057624371393380417770045500999237529079780729172790696706653114363485245984513535191571598828512736060417646840348683643310007754337025756008628941414834457637720866946642103945528796776540651521598500741178251774227764120459921129261389716335535597197137486744029115330485613421981958950063086516456315547980647324602714649977207872938424123551318985189943458743660563907407590889740564549320744248275355898967353821493976051673340150389656217353420249366156330747335251884694334897386341392509757113322828492827944280778454520304793145038804999099324739304009811424327529601520289082570331989018100861564055030747932320567385871766020747066019233245071328541045868132580588871856348839442610055372659519263805605259930730640179579028271115110793526378475969213734626700676690171996859819342841792864540278990824077705463168100090186755834865339757671215875496320327031666153628744876604813456455069759897651999937346619200943570642099064182477901201273823744770054266131282468218572957720770493123137195243560757709276127230799360070521884783452035447329395512142674610576078669834196441621141711946583062481402346359443649239613371244357406326405268545859813527468178949974151137574584440029131770182460086985032610154814257174539895051663625459419714194407956227576397995175778918104762822833749206372226137583620435141832569005891536329466375897709585425778197608974113190143987176296465479361503557579794533589815192659684195544101129550540385505145957679974294667861680248977205570615048519680690557461307962170436826437663138685199364531172008030122442610935481854084982138531407991304386497971747098333040808350197601453388835956322309459051606562587383875821056810707870781883520108958561803243655486484833725071869564131870142643287497430607090523498938796865865855962000340332729882562584090272386754154447747552148999775376707985090254741595884529773449170630262325603803431195713599947992340484480976092848654265663269608912192058351985628409648191257344996214179332248096524551860007061892888632620529762418434884293439321532544752937071555868265691644571730633138760347395322704203097342953314096474818685703485968686855127013162412371109756323655206318693504446441113573334412675689925493640042567828506763465412449603161814064716684455990202067757787261746852590422463381395166601404633350928741020062147202634077325016606144696240931548509192157330429018442257679099221709920876806568721810126077906315686544496998693138417038853078503248515030640397325007701903795488797555965091994166027387356630027764703618768992894197395084331690453722220722346574098920166729469902082134538801850053915342155553641187256741174917608570830089745652614883715072423187617613909163320467217219334097906748912543554784417509369625106458460966297899767695282526723627099926487386324835595746082656219901430588474009192663005128426447576652624121565088588225065269593022977662460011770098650811954665395238759266515631017419306103991454126017497241254489192746173040113749704108401975282707620394717015319768492383091054029976931969784329307998051893676917849470690162891974568036949169706939633971122065140619524451042018397835067632384491257569927619730381620349141756918313669173417497549083101409662086969658525580222145136759768219357118575591484011657984636066799786414624439526148082650107531888471879097059450902006778864936254875744742034260800057687099091572177929225747065573735470816644693226197476830463742810418345090955137404313216745769911450306869116276884290233739025938709727855924162017935641189662627478418432332821846023915967824831554323422398107106031354048206515999923178561964340448972270446015513315841568225864472056770836591202218647492997796570276444829378781268143774497085175163844544927826016415328565519005357519207613610940061022278239947460602638833650819811482765406817214126418080302690438277325651196676605365856225013402953515369806053874659459140027624461032180164134308231966951379568218989899208257811291869809199265289187616280301285818204785295434946222343569052775848862446616402326421013922516402129535799320823363147295618131236146545189427704611576548161188729568617206762682327945358638178825917782089091588643067376653780035087435207107279656353203914037246118074250113843218912179876316646152851166257175109350539867959083722049751224676295027005944074191978943420921661818755999786736485147324491102957004224418840333122991586524011100182168461494935151967247018646045365647835568735131546873890779464894671304050405839872346165600014161566640558532419920491271231552241476983646629522692039804718436683874291909182529505281707568539423445499538261512045848342664184155444748362499017335509821424036242730039852354227766933461555455626667693612164465477380585748111335725057304824559716106815983946749985042999138443201002910367180691962115012333813178129357260785374178147395104073467597304289408863245208674415904270524264662210023916104409476566921131666336086712018421936213712213651937602319747438764741996189627487445203875873579999987728487436307950746221343738475211185846390782674124467522884734153279196613234873234175684023103318585886599202596608338485948683329718123285675535945168235599214093941848574154187297599126676919483261737805507753617365291523038757237766343332255709181088412014070163177522066101298760540386429615049399440829255992762528162041569460693999728446262056569558048757348049253687894586371346709661246753640072788790374013931519579998982326212678731705052573207688529198673611367693241549138895973871515271549736468928376568166272624080809652115324542178976149748651740158927555734606212170824524267924731612766972722302998213191407580414329292371885394127106167811912820235339638027467037908214549401483300502338678965868755689793497281661869447402953120848734184081186402590479847830456513361830895336820478347400794215944230894885094441285737234102533452536354726629861164835629707168019504694881724586737421470872431797325568926502459584777412297663148692724787284399882247132129233788981950213032323670632005600941089636418121737207151928707524422948773739983401027730459833860114192860178218049808504251202620034407467909707850790863787296866905220948401317428329800138826980368926128937636845537783368419948460456839267023941797735605633063107746526973533091772292690366966571685706229000804049917935313371462858260946342147060397052249338982285812479437012931445804467378447201406807389620919015465419742312767959364975652884372479210995301137584694349564590648244416237249355070222989647500008424930895662533417327876225046922363018387288690295680201413549780523389923995413208371671858473306046084994685444459166111836774773116218574344532622309351349674365187428589777107666684874511714472789956708878103649541320681365489699531365453687879041329112467218041184761769762542416813603892364691039120060983227545595918970804979375820942202831869818117465552136564410293108757289023129801436321217552937321251473873288106522039709229484504498971816404073261859511316254012621016694357922647632190046212142012879365078452824942301670208610534953273128899344250848366449415887181470194639988717531874370317688471004967787035701273375497756450946163123530015823729897492501068809901688200369009778508906380460228414866391523019085240866064686617093402113327651948470572172470896355844234857720749120566042068196918711590054558313716726717671193672809769458562807020504930483378915832836582825393347155898531688199053524553120306988155631619647449987381658517892193312314156215399597454063405719370483471030845320027782277549412919913776743342553690162717121431391490051140219042547315821544659814515691092829585789260058780341899383863676228810117012568391871060937006399905898051030385038020063540582609802418838870827172955248768996869069112487439132844600808237276049429279510201250602602674861032939220933919709627950808554895335987838987588834022358679620518394867546737896585402374231037867897973306399078880532220426467335109200354060664615619045499797489863438974431754793689324179135492950575987239750379226505845913179697057982620352115656052509392665792267259160908776358478825469252288544610340318612718277345740881796249486837377623067757414867174402224225987105387337347927559582317974554002663755104333600297252714786242756251247480234803128424084414886631107466179203376480832003334281350744265907782532391322659918236296426992730883465541381701095148767504270889322760231009056271644984419701571308268886178753768278134009586103294184194329428379316356742912904332246565452998513425664447115948033537361066732450881233469450119021572045877121076811069207919535687025205546546866809990324084150355815191882345760326378002556253388787758396089162821814196301198577284073501357830366761347792636655284191139682996436506932430643160265452856111983760050314042789564778569831966695054754320803359843966715215211453447391752537148606733202225757130148357212993424351890743103625055256537141929553208050832215374064141077050608191896139826146059150382908677517388746298848641425988649801449663652167244503115697143608471956579997438661535584090623907388774618929856390406982798705970624653369071271802443956756345314348326086339406732158503503019671497049009851888270918100438201277745062005444660309367358000603983966484879321139014546568174178723885712359657150545143839377295598678607277586916828712097356965770209495410223878391952432420165817344370511837985479725614823662243910287520358608589311373012997533356700286796453137556443515631447022993696587694965300532779796272540775141563965645607998121766241578345309507130090574716295933772264881484942739679328638507920870237600920051560697283070669149173045236730869421033630097698849589946155453086753754119811013256311529535710106483255643305244591767927838948426226080173335916819419321858566750235242391648294691379860623085428775419501850240354863013385950273226708746510207964504285473088048173342641421122090881035045148094715494722868805001307270208608104262158643576878529224401777948522502135547688267348616575979803982271294010119776245459717626617071329245647242766249784373855914204978475559861884003133595174233223644366197920126344390737239509320430572740846107335633962578358117513614760177759268456527993513297903253853519404142144290371760898928457729876819901542536114022471873480162156180023023485795041233324363930002351360152132427193626967850289663566376870817167096576761312670538064539818761815630066294633449717683385041765423205760752407369684164816536392365946713261058581049839599387427982787500173490784221423900564337534710630675388973535924845313290452611647350979661018518906518473267930696512631820060406683967816413214635556513890761609387994312771509213344717746162485470384063552437456722738519219956411364289854477694049275115612412898175914771250640273528327278963577924849974228497660886501782284511258471298673984003462865406328640318087289303411450296767772214673884704174518439405024918882030278380399959894306242939946406090672163590195352575686705157243344439035305339131953656172121929746401142358215433725725950303719941132988891516438064590243938739955841026920806919843190520247233844746109469411211938853828731823608531676994387492058022476221383770141203706535560761338567555963417825573892607029082585469100007096657421032603723211347867084181687714060463338733142795057916821215934113160970055340962813086436937947700832889971738924198394245534913654163696173639633244021818540419994407784567208098678996152594999438161203038537284789151399984463844539971652579283461095574065699548610513510464114664046541744993374014519054012905794315518802371457390792507009328731936941207342118389380358258684911201100643519524874294016025638113570250364514245590868801474290916794161192828095559260408188425253080696572246193870754623278790617077086068602272684032266492608803854761112727333589936525644423263212949810138024824408802477221282652267053681077266593593319150580560182481604958388808567008186096635221336986122360415452541128973224013565847361122986698813044292297661401820974900699399574490440135561441588976256914271820861826176717545285888856098970182252391833911960394192603497043790614706527021526792690712484222074511868085577812856729845527468327339617340494300480981015966047618458561322522062781805278694394270903471914133712094344016412707659136936811848868986436210138023009859922576127703863424617913572605873905299998741262877559024734271606765245759238108824746168412904160265309240329839119791016766084495207702403619561635128830080827512295378548852557211949969971122345186400117178254466955246515615141197263945219031212182886506101660359153526075726254006567207378414835725553176476669447287082989267621057975125958244427620034603902028653352360162075039435544377796910432861323772038445342977238553165130620148465473187642949504801001925955738174601970531841016674614654632158345349812567420943942433876916883932034085613915703487823004153635129487043635745417395006167658351662343157084068591086345294936959104559756412112933823383994750173425228147668368821489723902110235708167882582598611023790923039749166644969768440463461078756165631371367505224695531611380391053665433811689324738159629013507889071174907288647716956772714646016421999962032436174447714626987133622718444814664160675687688896414414348480150781241599568418661404221500800167785356065054163390258325460021406430364617581616993186304781029045062410134991967187210768865718095458965646777266659255595993282828048517192062848159788052321477884368304276475814305651013131168475452929015090963449517579154331481285289992213469917942201313137090992846101414518996644327224677751206477529088996786780618408088987465260334658660150556662066720730394102947807748817478502560123438827470857527594172469648985005360428725783092504949928962938428919574693577225390421508646301074107912863623066614698954702194947869853344935303850542848868448117073095497289941831791536805110521087589142506618146183649791316599705913022224458941645087837817658348418430102422729319259352868622651922948441203797320115322633505488012212584305444246863516248371373344897313509802803912808845998455954498488147504254199192866360042896460118638308597226404120579880835117481819546130213104386764016088653605278807008399151868708127573328049157959372530926169049877848085799484714973820734575273593016221294060415791281539031644657745492744744461040643548450846100313661296424629963900644002089527682068377999086882631629154440984200784166109909696128331577209696067414232621791651406005311566584311549395685008205265231357594065636011181773918577198550481930511931911088314826741721174689367011680241469501279989994715786132693716877717748162335527906828556769873497203420464279483706795183965036494318792350370424025145397450876855331015662806425584670318008764432393060616937647736253627242951011091024508788748195860673793536063903609620389538966113139957543705505442522605284383910611280698992875753861954433731589457653365423539426211727366497956015169709495845563177402738202712073761540062339164805301148714053204548613783882904198367606508830799380897306090259094122018293913027181834575804031042370496351412326079398002529866387178742343960628461558253747726184943741477809226957341213908276366172569921156908345059403035630532997696545775636717890200615347220246622523102007941927065496610800843511647642765678125756708545634000779301767399747542175678395019791281581775231713257883447232319890757250493060715605982987329910881321824055382362491804631380077202178236953757680788903837983488518374136487637099141966906021035053164714103814093811695378628215861981622659963253400422620590705514028701841682536195374668052591189869775037812937119765735172106079481479456785509093401627587628537037391070314491634222262220295056681244072039543526205274063821134938736840125694414045904046947960816662372066404198163249467528082441582819344932784164701632342628231843651069026984336417992833674029516098216701307286259343735351180548325655041959636965763151834725585445772149765133337375350879753327361863693907554762762286692123039982836029352829184347835966000695569403550728651297779508321634564294858254101548210739650063207521649607918368937372504013497825830528977674576017954929498835331921532584453270930151724844166912220449681397345555276471932413888403295813814943731551144370106682235259469573627195945487635219710731223725236081658399762134971026146754608789398579539562018912978535087432743597500066217050367543144171494679181393326782182135673048067508185627841273167135775102792174443191579969153146857455402385126158327588822239013529244483764561450502636584763069895683247534342709206798001097358573761695580773270106313276783205196789314181677370578261550295093735100011441720469906324819966412331210780329510841471548247839453196749603433927038714700791240239927629318845220099670548080967087920929506088449357884316816276591992400059110096758719761122241044908953532661731340457446717608270380717185851998992438621348486679533648856049930191749466425664604538922772675821899447929208164808205604348729191792112685543286749955843329354388962384438182057917970093832386128287822637925032627361551885036780111220480272730169775755955437106676531821538465397122867530323499932276509039157463941738001359675322911414317282008524136006580508409058390132346955921350572626978094463399333473680702420089640104267578561907489971146590200103901746789772333206740833062409605685431060923004959203816561690257885032016588926930870905777045185952076084073661042443727543522103227462234581255836617968461481713886655929943537324673302921175888050744186740876603735105344202748290427321677159855183461146950506094960908680694754731696129229852809829878232195944302198308450482166485933004938019678288453117808248934790495234124892525545663351915114140583806246584546333956297035232372245630269920654364940346133818436761614966356865632122137221828054408253912534712488423627974671930138689717912431769810240560484946022342495000596816261841940454222646767827726338116076078743065525011314199599730306625510608513552747669880163316358720187418175183127584323463037149986097253987683738115220327854046734016022530768562017235531466388967654321642000307567881587208599955722142243128689879398397522380938642383939946008599367907294796536279122977186533611034055185050384492416610474550659088648930546882702579223339597068031177344276389773388644208601717333016227806131343381446775785991072554611047475578137217615269412968663070834509574255687730738972110275985194429993192731237612195705971853470628557756947893051861207986674017381254799448988796457197065631568736509357352571951567666762819839432395022408336675295697685514739815818753488566375082274252442151609472590125930117479367710450376512983230663016914167278915596025175531133413128762780791198614587407726448384652961466722313672606339679964434917613768721375798288862675342963176731706277407577410831612714488701210777913791744153283822687795763384720895504546520586535369703201069371641964661728223136929894956347713547232855617601485264504647785801252614518252337044044468958360991316442309472729658978977701887065270352922533351263502392553484479774032532041897911125449587394227214222447119409344946537186554839099112481437036166221718321874761923605355091567186296162995913556468954040528853642271012267430561751460542572545029730410503055974809386159271122123142558341226932690004190494902225725518096379033455735512308529472486723396900910677473153034179098889105088079240935362209879276484157652529865397342698605902547662804790539967077108943210311891544547686133158675065738413989265642892264074984102209473854471321533864879097377616244676873809016248048556117064891568691789864259574878079426120855976293853876778305995775700272181309656848210749021628962890706898479034963815719333746120680772060780211700780632736142727994522094685727179305774755590158760298894202627741256813640603954580973507059878534598901628457918101852979481117476892036445657599314597025094525709971076421604195160575794439589379622591360514857410784830920936052363245958973678971939804378123228899107760513776507275129912380333308080858984931340542257295761448423999725062406558779851347634590315895905362328720315737230224316402813569399684970834173599071009019608082526367855954674347294334012990900933665493908458370682767961409021689734798078353195720707396018368469393639992763821507919141277472113725790719612070719128015551260894438473553213494486511445035424830138247259389387543993890814163479487105522787806202772819820853380124065253838708774127522730635384586810313802727304983927088056634603269687952853182649270153701393100821705814610545241683225738846959365890343669340869604079720253649768926134698446788446989592587359249354929141589330959266525279404670386914152643192001779876897482053597917796620735063772532291931637186757085356917747576130238752704758264445637237087376730263538678813001386963336627945612106694378834419149436842684970477531346641321823956727164799258545042608644250679869253012006967413485341701377271171366555652559657436399941558626674022621744740617408211480968689939273036758607299043685877098050239144625718372305998020064821163572617637494554707359600385451570987784194774903453775557775570026059716149182621139682275057971074706009273774850978797394093503584463787903432984296848385435592128684357110876538384563511044711575033164532911123093043038062902822027305758696063880525455749247485989839274785951244912054553270306052207059816665726178953932023042702721934313147631647183536989307775526198738190880756992001253903011518959376813652032061213007668895808821741892279701271228223031758306884286210445620426805358307169861845228012719472988913391997343605886148627164746019130576465818810961499887791443371902487826363029066912694015156933038878351280061574351990169332498357770579661214540846806229761737517327135756466114424908427710258331364596430403913382864167432344183703269724384243091202652753152670109026325375194277993505552304823290075551862298971331029777616285921623350529874612046280425765282498485088920807179613183209213077306406488554684233631710248482323502411049764930223026726762039376289587854693956379964816106407628181069356818138741996738069307037491438171641249803324165260104004662952417428293038010989009496165362003239610054691878349697872256537914655748525996797400653735979021840750321799383002233958196314157147440618007094844228642647734951222244745426427203413329444520587582801349442742152045175163621058077002487434530508006584200862566289925678174335609741679784932364347346470428315858315704805132573551298691838431567214712290446998534592435103972304494355988802545858274910460425920303594302342104883775242225963176554921915172660821341775351888208493986552615214923730903813233166195208299597098651889135471452336385689744509320962432043503857925092850195775665562181105498173604940654389902685587058459015012933728724908722040569787269833790521689365186095413543155011073370799171545360689824258006280846790210594714384347234811378281608066061255961005043759402427477645709805408840611698911884882336640519496773715340424675075395994120815359040913063787589761613586993491441587460722742471619522207089883132905816197741798390180086102249461661388355599790819434689302220200010631639424164487669578281058960020968438836014784539489810951923510379550444956260653080401673850577676544738946124982948775373112501799735838990122838125127984283466361677116252340198493589134918843932662252687859737082720369793644022172299606772292741671840973672869973418578892751062406250992344501196099110548321980065763802987529754376080986888797581885703487113330526254148366216646346423860928156223369300966058791902671950471202813221033060304343589637355003389217348642859556767691733109736194313859831839743147017049727925145882352282514979713882879622509869371339587520445258420970458788528020171921068033198669879084118667451211681796229560846245326927637569264065087250406678363620992179361633500445944413971364251979253671866033965588318739736575592746846847823897509446058238464944396177707717010569463436861831638783224575541620394469259875099686958496596373032185828511469067047885162346222520537312008421656532073455125676034820875574517732182973585765577044213783047060874905890290997347082208666818772462924260636351059620526193600949791943565480754157216602098753288366757215693603583039560830767017700765080465364601652264471264606447671598943909725210308284472134257510564444033286514949634572378503646529909326056265080383709669419167559159442054731228150228815327816199898892584303715179916900840405409908744966907844845172145774602907746588746693118937724227417932486938910691024792287693045271112268846584148983808592251004460379845470320852184745304430029049248690401916146070545179050852987061701266902950761418041180087603509185431138219841526662599409578368720576610960956745233990024470676332903556276677607715931267897283481237039850791025452280746517622806882723616879705486740692571521658740691453409256326107825238599995352330160749245636975506663770459495569837962184552054781075218167393987332253021580737089616734361877544077016127625958616910446940117429650342883019095473476084679298148916069942079042208468272959776381641981178626250723885554871742331862570919835244783365190872008722236213727657019345950369057352473026328129023108373331208119086188110361228007021000890548487869972867280233480888704239905892642206645242412661852941508274489692538888661447444985374461593540432600037444363854102275055296795917621333649543994741668047571991841928575631219958483362185333112637424578669793770759423854406214233635736170315076207244112075019824231482127128668006795336578748614780459794028304390152597376725445091882389434106048469750777186345384235527892821331853701238364783252831450813227651081985803163205770092844057736931654046080482723558994362709778498187556301116644687299031748447568400794344005384148255745945661760427512176565288862364145631312877989002105996937371024530451653587852207589961957704013818333317062315020150021702120391820261052169068715347692679876410524358847905944832527104589247916105644697681253523712740598516321056998106491203024094942643040326312458044875893552570628397026655855455553492771753305805436379376726223991996369469422584356347144955761297288546064349307400244414052886869599497391221383867797663262211382356507239798320263116770148458123813439103955488521413270428992022332128805681674775199148570324750641512586725576299647791851011611498994131071096666936705566779644094672390793402910441665201730797949797767891483914041695484946438832059495994172131283416135416906106862209321857689702170902378720268565947689790062821764764866168901059350916434513581012171328989555036678153817054401663112718759074966102529902248941112335776286495842522850416354229219131574334926708069656757017849874945143921721301205794717954232082337516377096120122044115128321714129578676663362512453604667236570266442737320226628286266447125368916810966141192430176195342330836468288116726206205129873730083244627501760938428439041424416375117192687706641420475075402029008658467337136283730225302848651465770879002007299206891858109612907720952443053555786306553415730769206367685994017501849582502462916041994643084896834564757153850620104892224813860136500873778123929607858564584283718053333675438217520903779321373532635075348077651314609263231065566744847815404862979221813734558246850653384788185194914610396457544145166916588542303958754799808531093788967325429797958256404514627525980211659065753294250389228764651054691408952395540127854270353965816489226307465418781724152959437402495313118903317103321930405297161238301565226931419194265134162170562392651424274185595973986277775040847968451246893097037661886997413723515687514683822204924690492228685168054646504159823072143134582784864643391626510094405702993228082767314950907580083687493687794765626130967613354225266391205793851245205147454419513382789706565905754530098612880121355336880398377827123939335338994571300765566229920887359919454447356948857527117373527408705343176532223727719978144769812728962206775528690992282850612196601004054522293957866478314218835839957853790189494213574115062201028844829838880889679118156435556413546501708823598082055655368402031047353821134998783191225013922622966935121495755384613961512995387729099321124412407691452818203021932297870897804606336180360568823943400671096459342530273534690417520361330834143807772173801179554394187920814125063301680894886413593857386540573030381118321041078185389942720901442427191719037107362936485416247937555794274456341491928679644855797771376308139143246650629365550016940172976118336881804027939930012913774853632631889531537856109099051688706697097552568576751678753080751628492050366650358960313613665891029293043373444156690800825544519389522495450833277811608770565945183318736724365907049035039847430293602587530533339328531551813071001466070850408528056701472829177400773027911268905576921636307648230439293376895176364900638621579806042771351792401286637958161283956233503169987127998098602729930779118866651403424524861936775910086330142902724741351071545597346881221470905506671379380117637654028398689683314476365527516680562472148042801160197477109289251461410543535863016157768183131514189119449774810923762813396350384415016096911172370557243501370397715416867839311844820166864127254604638394748156135244522675274010091330699083266984655864196172758931898949318340930829686308390692825320313452285381418407679382036247008468954436608159005633679654918232543869035640730901631333668379002171219514231446152119793645648125455431520870522145203483541200292732170503495183216735155100094279253554586737284469354722000137039771238101642812547057764754954946403694963883159141695243814515322763173221213289728723724426072737082369843706082008072953178607959228639998701269727015587945460942915744657119991076849924812691955562693677391957879800934792696748599787353798859051004484134278326560710554907159545569868063272442230781456544896538369123413039477049691689962264635572357074235124427041082319601854825716941233650104016701881848489031932774982161414704248079572417293623038653840947306052547429093888520624422994522151292773578182538581396355155478884295102651993051807692088130529797643249684663668072469236390692212407282081966716232411164985020072485153648615580018832996102314679337789858445048509865923968019093824577883042279691709023169676056086130449428693884805075873401574660468968265134146678793912475300179579956274896987068256019796493024558568072226279566971939350741328705181064921505235419032641810379808776012800087140174267722176746757921083773979749395152901977134348244706600052805289679250082266140919880181868772657061854741049904853395185633429923607482886696098352046203362919101872115471432966680986111852954039192298487683708325845566369626615677421484291845186173098151055956618589105727757903441102263316841166522623789149465644002323066265205648588256409504548956789332467864054020862327964480146789692440632339104624892541209597953845264013147890430189681302632659711278701287192151627231899003805215385408771352480666421101253230370728741256429291208121608664815090193546080295912683555548415048947298682785464226919882060402363992417976630317204678802960385397833368623441372030466106247368872059517590288048908996755720283496886106811504985308164766266361975447141566399032756899331190969085723544707149928995558988631511580907856775157465614363381332178177953917816066228066313309442337192769064894728192720113929673017143630648864382165494554931448360051368739755356714804709688831760366259100798009189661571145799333768965128177660675595304029946517672800251876805686623361546168207181361972758028202621388342284925312415429359534795290573043329114391194026331045972702618229214571586531057535770399457631138907052672021890103971085472481516084804745147832812338704697137003667640013793203368825054016533465804684469327996147587174048846098501237135622274501370453079828056386741057918434080668536426250785335661861630642766994790295556705449579784177880103333225909277779138184615695073035317910886408817709349149620896465607067608989106754153681204441289032154363356171787928854749037192010018208548941235168045493382122533580740711329438118221154057868041811747974232696896381330102246922925555734061888637865234094173134507309266409541134045111084393858019628847082816760170257260828903338633197927403746690614869052267502503959036015401407333816103125419488063213003165398191670853485842230357134751956662946442457931464019198143210385384080279448716676809787266362545668379796108917744559566812363413005187211403292287838412929081802330289506563618606879037494564179480667451750757327851778715086196997485661321650543310045086928309966400770546772786817402641670457787861375200027611079588410418682372659368013052103671978255244143887932433867949809688504970913290922722212352942392597990104152972141320327641575470555982330578387658706544207079601962524386545306646397046555975219385433914985046101443064030322491980757572742402199766064204690305178475103004852185380546755504904732362204152516453160585433526356048908565075355103266436297446344758709616387550810650286764365986421485260322731445002043403913894260742703901914716414847115796156454243843591984758265243677112296632011614061543706347591558330085683739889268165358244525282471833689326791631458616717437361926693036714896328881256534556242925224273662465677305424368669432544144460108894574941940951403465556995707446560595111045883650161437514795213198677425921095160789287072438144069490847001041218332516094641074408645105453752567501587396131168710637732795947232009042757122250093902650976379798075078340338310803164866116362011754539464355078105087708300935671269129878112105920941196776886402873248225748271057658573137426820068086924676938703367260350612451917609951527709469793034334643295743072787691356477602737264010326530900628185308746333843060853913525002496985641570887881556482781077499196909442656378153103937853901019582599832314070576881406260483182607145871704042245808761829747514739390146585357767429427548497481818593435470887208360826483567251768979175811792847209610841930571880546658414138002813079944979155251870050406194425612665254459954934334159036937235085268157102116698844845358522252233795387431639748454555144850065180543132436617006008026198393149813137010467376593427942771163556195681496221735057973898766583837348604237607001369521808153630319230054483551938624544039113139726294218597202000039740471520226181440630272145624288518687168316548429409206291932169482149112751717135856019114565025653677584426271752416790388703033392414005188350723074127400862432658814572150485336865687282818582302052817040773659467493380746508833082554012961098206837561906138046403436443908919255559919313502255850284255269007256453005256995255714928763414063706665199350018766450034657643495122161756219418873426403956709708658077355713283395978543928787525838812021831992902611502122389327857757837520802253130963413358620567954343523996184353584599554905022850955124616817569277208418633015181208358321999605705250697288483545971530527360897564813901614534749046427517562994129180886110527948081662133932659770668461091387213180078389038758387376741508896371721783789919716959436036266436969110741097287943228919284981385847917888853868209762929324851747691917197422373251605213999649312036268430027201055683315955553597624633539523646533841752296223916894705194691921906106587972144602670471026031353901465439734015915127983337648403508480906223185395208777922625610329644810245350916425847899610491602695011598406383646088374494775264326147396822462649256684059473604695366924630363625195957388650404345034287027384485500203245072879571182058244628032953240703835487031323440142728547510655922948369331811688785124891019336679945950291889552280202775383260000193958063732546294556259593936975724938320689864562135597280026774258927689721429706717441593994501972416918815150198195984380394665044642502151237252528859312130687801690440254876271959589563334966861166214228132467716195548247048509278267380444447660998223394086308727657243931556935058316466922862832087969993486300677726023586759622774758668703959169420752733108782744521221127220498261535358862358177815601316794885734059713225273631543150959469473779309341741589610214398854654557955626715059412863241677562273838467775147314515890127826493118399468923527658280114081240580401221074174086394898607638797301411587757155122902888488955852064863070924283358564375280159132241253329360850436615681411298328765856713618283876607247505944844416454333140671334152658018542907780989750589264145435744960376615704849949293063006020734475369350564848855720426744678063710739867121654555483135001301340892959639116100687893582753408976287127005260863706334625420685852390105068377237502121319621921567212517623418826017779459966691687591824916352168161044691649497286993549696564914784764704931344800977163720942074176778808935173300848007039497234105690481720274419481180366072285200252274737591737600440443699758123118288945791586243992248231825826506907796983164590755239030110621641379357810512167443628047586014737822857826535912670564406924825441681714856732106922716549021418741430427498576738144385633019364095965204676974285081988425341244634661241845782520610481180989413395546264286180057871132493267747166890895960332549978396644998937003435305235684481049012552755299149092355328716049419494837271158422562522113988283418594919651555313196142676478619568342025734420690856110700319412255082644702739405707368383698033375675032756199483680839741334364774649264308164856656935937534871579957445664788931592527985157157195004797146992544460741382068917605721410469005232948732388160613350436216944263621913711845861626274712593550901900697012832897908111362130524677888689481214228950806496306873139572777597627306732752652820948212601898739702359413873660196289411179432529303086522862534421671008135569902729344879511961397804145864554056268825255114169952364470778548697634083163785108514057934714009641561128547556295875610854877327381359330313786117256411092492705623258540265123262605268131158760318916660382587231510248802174960058236760863785545518148831947994926761642351908423578902007885407168258227342804180424766451653426987208864158714203654906424347032935178502719518348984795219573247621796374365689931225310060069843091975061847249443951732772272450222158804410906134567024602531033844429459987364980678351450109183259693919312985943241619555098711310135570362437005082136875734440421289136224298205800858560156716142549549644053075601972707548079190924421974179774259303596886465836591575941204891596360622934732220877086875028280901250262567883726014302103353683019138789403144868798172272132057463739593719143503688684832168560914957280246176464277214134449067107676814484981406616545801312987278726515026085233839922643342408034929163113094655849330416817130414428222379061803316265258934962967244121296396571867183874007231404841727986600248236488589373013453155394246607528155059174443908332125885977576484537346755739629871621629778384749453196243985986850482289550373208643838338640387587407914154653860212007494611822683722478147597103246767957940241083763456166529810365580043351974347972528246225167476112315678704544705772067827106933668828068775562946856357664854527597294403502197964523533358265342902406859212832104856665498575215379774891653307070689491688060651272701675391306338413306760213158769704651836269012580219208263914690339135641368113146059717859280782649108357661643617896173081811890863453934435230766290786940671676349621015342063024004136590128502470098155596462676799876790311552729869044035328386064738476315826973433230529952549256001287241253373291746799159580570486847165533947540527950865115161839719659775012736871307533935676913487875032002665493842409929804058224071158106083467070810951381985442122902092894468789638737199590708954987278241975321700502919102943282577004102032751769099750648032567113472685876907573767418187162261902065529062160415285432415484019481751891315557222804020192254574894824825166465995912974312124738389100470872605993723051594370699556314933307073628884330886038231392331598142407159788952910045193686168165942334470325774026621767692357324156259871742590349837829392132783613023171510434825207542643946765056021977715341902100380842654320638760967162902405092205453833449305646089599286370129826615482816532472830147567705962954245752817302434444638693300480899222441524940771771013172941338417580476374376579701351206252838574211332123500836167141405240791070005085243817331239043741379895497278193808416976321124427289536763213574615578029774290062214451991676016371397373637538247102300041097478510956291825180930264978745347494270217408071003219217687360374219906284231916570116436340726553246720285191861599035558125155337090442183560234893928128791135622689632083303549685732760771360003190393096046701995437354018503450572782855632986044815353996883973577388438870292184424156780941980419804567139737862039774300629378372683417729318479951074286531773951462395016105040152406558823993989086746649885118944822805371779916255152134350774446939440567873380400369060069639042172016666216009280955990984211329543036781538546207544011375040150596383940667196862198915046895890340556304189940350726984184382487930782779259004021320030236376322484565186182179565219224990516806251433981149587742477617356261728109235670913198294071754451170927777022091423514332749135254870086617351543574833186101489554343419120408450815075563018286533884965348779266926809202739569897571668840688040915662775586300278397588736431375742366962680891233055122803257541906917843182654475226306438126190812376502810779607368681741630542375823315376113983106207565176754315987048936348377047817604157230133117519890083087299009725141838947327538736872388378284902718013759118912885985518289240786145310771273174910316852612902817554831113332760019793309651160519758554863047320214876330929142563641898483566882354416758212852305162272396792649581640968215345895990762588030960303757323416265421711562728641249929743489937672961227589454793946834881219288197231459008934905686056936261743292720298487283660537265032151519615102463844587921907096527794036917120931129679186639146286498039803363804664270465440097699095770102884105481740765342176109924744718493896304471565209537983361451437275896127070666143344518305238106934897231661301679434264515500597966809490588334337888766949619790190712153766795377185874605229535601485886985057871883754748934914111867735411986977945358573239263555097894747409630623864318479206156731799749758293590770843830642860070211674537604571428381720690536778696101720353833591009360677495177736293832417003286883837116653322991362955321143899061548570392776503736141736631079514988224146302185822774356810756331898036717167859233673754836255931213039069955170198483626763479126776885398558893954808114948879876961049825505900834318212084540582157681527560131097919772911891227605226528316970563634055290653063544316176407241330916163179812664766590085943964678205039025909464671295261600604921199590774465493078910503898185363259575383929070375006533311959118907793531894692925137952941462276311385849193897023149967552167302316423891117160844037294463533140629943739716365069747414326061154703946493274005881423106356109626056847190102656346863776753048023510207080544221901325392782453817584774981647239462768085402217246317227451265573110906773624562987513039105621225059389593678737315794209391370501150562891300906078515755332397096898003563763534453614629147928767512834389523572533368229310273687783909827646842877695019174880432779472886401296675584622360372627376650405032943697255630530674452493847525091256822973133015375269775998014917946031149294272136160898062683933884072798676306912693740882232847596829139567873666971390085479620056028564507999788690274000863421383557599827633697748955428202941240222000546091904710846405160159283360178136903375853103024017407652733931978891879603518439915141267463076903984462160040985252873194301433746965635158585427176051989241375819778799700100466321293060058843287886631882176277319185009349774657346116377452654446937660381141553146192539950438368802717290030334885631354363573937627194053680282255160906047307543905827577510201983105443414576742407694784162577305419162899742054217376244661475391229724850363697753611615606078018730552770498462144357006256092881713362564018801667261914825616884956035765271895321967988805023810658335549666617285458784936890965594616999315941666877662613835306801936792535289362382621928274894569429251528957074406519174459102362719690699052949675469298346806642177535893766963141618599381463223184635740093602622064149035344922874262297720701857543605417185093820816750708788830222229044445183279581038625046196034726556856694803917363196048051692541624041301848658264362345494129612686251031831361174471221160813360719714352006849601097530675159453235493364062116846744474730151116699338621534388342426780938725948876307952339012594653430913853388056572848452472625561741209216382366617916794241272526395557533089276983997398777911635087756540717653840908952696439973673138844323684547105256880380597431648795362870381666486835075841551736214097571093759856785778021065758832647332587184949616347035027767421689318986843809606039489845208542488609346138389184560836329856101532047027926904310929737493346703085287029411988138550109046745104501156169477681793712592173456536224877909973642483423770778902614415182250234173460578478044685019898079696623280820569689360568680349594875496777146898950311958568157720453698525826158585139200896487370477361040353207792509381860657114854253132167095213708278468820754957115744143396959490429615076898039791547802552155937465939768850458833198434378025652839792413561203393149745229740667876017419059414357951774637866655725466309073938823991004082016739212324661522946760681769586259275024748367776072486209368281675583057947502114488066248375628119291122684807996553585235782385920341767608580983300002717456447556005210086438112644428215005216187794996351583868880996209865316476040738112771625727394664442877214694821681066341873048985620179189304600525898236636328856644398874726666327267942707970264154585315149138291792228499532022501425755731596267619599147275624579569076271937529575169031988028583785542677318087045929629043692091244073896625342137332732271765088123932988402781094191070760211373099260596416340404109732645028155088400109938701707981976456049840892228331317278909211525271379005393392024372496866773628602627002383794177565483686470556451279544778181469441414729905263511790521196214067265698719437916849715716841240885074160564294850344608383678735044377895963304995913671078056472394483721808948273857035602015461131325193501899736792052434591303189483708431528935588752483363873596265428585910314347299317012985097151871181270155887799525175866619434469132119714918790782849802675255166006605281438262077151321628514309697183611397986263528546596985496874368581219196717803894810742926360992374961003806239693187676090740575860393922097408616294017974062445283193264677173593706528673658455570915211473363825971204239617344841730053117326000631606557159472068777756840347691619539238955710203526482023597668585812832644546292733938478950369303093517748192056733032428568290832331192485161403396982321946165162292830225930720450537526469750141794201902257370315147133078490155504772885873081191970498575393893308253981477071776368155205965884733256183803277260332336141203534132762732534638449071078304563286558340272754276550940289278550664577497630383282268030866925286639677290957080092952894113381579065958796721900088702299194959749330438855937589723242119110833855684759126335296352136789638073780158741114127843017393146178898058353412958521255211648441553561381704284244575648785427061706029760496113198639743362581007434852510764284038384951614483477503636130156777917902873940505919393468666125010304262918958000077933495541679317267025582194926817557804381139122874654135560709668398930843837315925789529198821935647470165578868667815744300578324319751001798484311765196077367628215080687020830669105335850159790137922250527971229758156811563588974896812161275786080102915976538582668451440900979302404852546882344577468666877131467495308162570846318520081203026249383770913680102712336520265598062268750701879519844790819240785642310694501120528432084470130440097980545553240635087574690600756896926005795061511729322408501803695878414265756496191396148956312590185247122940611896689903541777109987122477946965832276707294505074175735732601135218980238430731890809063739073425841420654578466777782468960406266074660721666990549092347293716615086187508622515900992153185320909141761370329834560052224195373769513784007650762409695818293000341930907964953228582817129525825541153459479166248796323206362053704349103478920697568634260458947925833760193797184404267661927749721849013725071376375472745593112360623349747967613246577826638763984427079754980474025318637613973912867100422432400022971098987466073682956449106875822977513475223718942567109455656646324355342326425050934425142461062882750089553389790023073360215137564986907881258766974903480921183471711052375537261516046167515769949073243145226223837689193094920097039121303534475417862881002475998205496169752496137829944237703690951432149017894305040085152724662532227338906373736868057428451641820986807470603844918602688405618867510212891490438897607681396249418385027444810094788499554307182655682649995205644266292904016821393653761021332405079187830778551143211497966289576155969385926505664949695452318929847855583056936795233422491519975609472262461999813731860470861603712486002899722665425363808348472244976180071889129649089447279698714509586577978524176151033802835999256372189734740036141099849595370906318638045937255425053499427258518537639949508078174708422769241531954889850171748618409365124854341380236317343636219736684948502463335438297773602392612967267978741516411766936107689842080383936500446930928601344369490968980770675205720991582725473465379374191996420742779934524345910959194130477529166916705724072334513692243771900520215699239723029635948748423779472205115370252345095215901516780191859500224993646205572432112433020895380189895661671387096760384628208322268984242032423498267347591984783050822086766828143956687604499362542093001655268376023260756662082001389391028461162343715571912466282282503714537819026473948346966394095135123345980563354281400677330745681148989326499736209382038610250881450529614630079128248769011205635507164151798866285332090851066491951580807417910314221282303010820474591576173724201478820376056409598093979864372595701273079385535655645185142687843105684627043476537961991087512822879654735615265965709791850787366284343870725029331244467178906906334358190193991294401355547385586331494035595793912267871960053052797843837640831156493096658051216598514819377893286484113156981993748460892363397573906405832913676169388818348158451923468714360924961826534459345906892785466883347090977498011861099359678203430465763190528410823366548829185716332781109961124405518080211732267552345389897856833873834410462653185540660723245391370454221082999598375447814710270592706374204156471900767005512757806441657445506963094672373059561650114142395623321701557746419734186178342105119989673683963873509462100723838243251450854584593212044971487604335518561056173782859279790139918773592836274433920264496618273761439947708904152636113260092260228164092997094591118079525230340292345674043455395800832873803105420882722532445173089569613641493173390091126102844798216577109819314925325235586616286411275347849576257908080348420744247907789344154330369865451307716637197549750959854782253441996013371840257432594440220328477336029878243909286834782051586682031137711849356152605922466701843555721422659464208658726254743415343346284811095757938415934124242839837097430577557619927805893868246908742179352726111869200204503003861256388184096161744571246501096498556790389971276005296819343790477508383755773491877070564762732778073826243931490036963611493730352554541150008129975365110553069583374087457404592113756970265880464051281323496265278527468350056645866731156494395933865893623969582361841888753550530922749726717675294476697880877115193767165699026606949121809879602812130070903784193589266202379351705744384637593034652843963037358640493764781903394607431758078123483903055041559282527455385053037476676458342970934230765985569851194650690831291302211675268358338419662510291534397457812332649653755714729232975385450179443480982434334615902006217435124462146441801668928390672332349980329931626929212936658264316625341987269669862785866980197672206553214841774151828709682986945771667416753015226725013999706133684775916284413473434024303178314524092815671000665347488800381800157415060324872092628797307547815802052130500225372398887742948612359205281417938141609363854488807823680358075384858148148391100308798585837394872144330057885510385456961465097386143683375021783462364774768781434051863414359242200799916117728297896571081893829631412318907055866266969180594381488408038977674818223944478485358289847243639121281449227877945657903212190334780661487567451730712169273025373754768669393926783369416275205356767054502797104671037147770011403484982131816402328786966564884575685555769046164503125538239069492866118624608782188567080773428181633211251393057404297623700284985286352330067402812529074763845965645202958427917351774264923220585001298102090681631717302434343239765720386704260693767392764751362862990814308745932249549309331896223815011122641139615650028435146398389545655331808319008043945303726847861975877752305511611056709284395489934058814985182171803100125352205635773717378936271986108784447362214049912248094199894493758812111505949711523381231822669592664290926163564815290233612221349039236278983061009657553000086951411108303367107584080095592198157591517923029019079234351556388360770723364270827976513586834596567983861889019536466078410270852888807279571598639852977332204583538372797223911290223775332964146854337282483375374379606301890140879481003703320340642893644002177233447388973599520767935485158396441745433383320258523527247690850953629969567300168178206673024144093879579149801121036303316021306850471093420980943364153632219296624250908692664117831628299253363850780207256792367888475942810595458594356120420380504176798828449688999582912827820243395055141499768290204740918202339748270308228273904549502534189143285880720599081921972400036308611079154017398137754557516826258708350202265112442090754624269759867168674644914154166771626353301278686464989076420456948217214871632281018385689350666472607079488811819700122182928865669130871756223483255897435376877868049850887252624671501268623390487033102230334553583911136112189446203576988731110205865395504756477222909544614015267542906489034381199824525568362118056086374525287645383686103211921548111083348594231945527282984720016083777996297996598864206914000877527615673549384424344931656695775986783861765245077879322138401038226307613343938836768969612597816326600925516149561874924099488611860974988527801240036422325365016584207747909760111910604004178666027122251613847144762297650348420473491366033884722363573778955619897676564284024794783688111340707167309657316338556569933386737696678085159948621554106254782491089878440701709144273438861240742223264581094071028556977473657022822059459410637706011110644713987006881922313805123300645253721476114134107931053427930326848234751681324521762573980577471759448159616030532329763707266030290635292672255343572111992519574994262822798649414073966792369329243075676409362233543150080706683506742382465288837011479339343183426838267414897991327334881883120177925788068466667536265464322426871150534794447754284397961452737938622049675055774763327976210437446060180530321396931828380729402765692449347660658104381495665678328667974938198677675824258315663634520320228083277367579843570220934794078081081138162250639608151667759328657360306895291858612937123077703916702756641399000725037448605753662518743553856413747791273496588862171436478217144773528100194879181586439127395333920094415050053954077931610315586917723560463169830964575239796706324903003901437710499423656805431649294973153453499676743637486428404969931650808573825547079066331658950552002583743887837383614630855295489209093331271430968013995732251714540731438867699053238332642250346515934489315177669095733174787354017710748333554559450436831056926412604526195530501914274427762510679657116840013139933045892854373994080720892181482572550698698826162354303098736203813298585967770686652075940939224894436739066123873063531163450121901929438289801432624572162365808968493136474385796502479678981358516668136448264561421813318434808538166869483780365280946090174743623784136367951131495788258328822044093625864392945145368249107822190310271356350911387114866463654885133533593020654151931155100744970066768324602684290036653286776028526795168062810927520109665645173680055639049172808654641679858245340037731894254673661923509021631755353244829817907131080089279627284120115257758230473665845223446132724104523263496773899854105542892329036910974964337539363634382920651026014030231912092522676473090378155655115214479483799386912730885528176374007604255229453429698291333816524444014335545514494276230924224862797896171316546681957374918164032641094658726986457697639888411616703959862139038885310510393763255142625118512318545664104266045667216502910904033894546169073189297196493469832972877063927633515527883068661735459291066596770690985012987006160344635713307347976647841344919171201759732948482778903877721323148651139303661527302623753936100735791404739256110032314971288110947093337760088005525918230333518297036304326551584599891337211188122978755961035283714855255546113455340658241382533173950969261697715786149014759471944043341723590331836321062659966310137431288735135952137636046616586178869527521847308445284368764321319914559223530612362503875191691609728404920728257811876575479880989002961316560664910830771190411040861644360076228745377859395321525634882601146563985224476619886031333432373734312428995957666020532285341473022419765414677520687241378987607040180823493623996185424058618826392727329552159380536922631443951441882699880939973026228588831678968234567496180179386410541129912685017810911582169554588113395054168466558525395075479757494067964995139543253961710896166274448466965378310206690134749789534460943483344501019415253124276799457789889174417468476424383168893456269110860217488578020001814458374793769080968767754750899890239077508972023437338668670537804296100814800267513629406253788277104124650038658160585095056058336416647892760652289159122161054924030807171434138835810425671302207274327182312049170712893558298680268379433477407093474510430514425741022024035059153328760512165475318550449029991147383824159805683074201656969321390853268752379022997681236483157608771051822447040229868679606210619774793971894659025483787112084706041869288810213708060545122553706548355468958890435390535413420556831726854188129092384925953381673220769694027529059523684545601350658048565883211008934567818088229381210524930523882195630601401975708829273393152594097779665254804806983684932727222965516980894806873427242779534676665112517239135639480844144200641270527926860461892688021260452610730307809248537845886267385468801230395911903856071280082626742693313319020195250436554084616830107131152604090393328200743084645514532427085055770221484432646060361906169555886495558904001303459428035575970833650864051050989763509470975281760933909416430719600985674061491712275405733408318458192627219059212856793585720484905728800519453578943934535196731469993817613225002420099260332497890967986371302839857891784424801077552666961771933546763766930142675063922239571529334812821330511524361473274702486605107053622216774126780135701435433517827343885285892535905538011474419299812332822695121603393042975761540675841657297083947340782969859148029760286243820590172249477878217039768149955320629725442664733030612164649646397809256011218129312263043698340125361597172424646139342507763613635643301965059340776943446910065370601279413130678598579128749507443616084647540400079485272715005388190663925198233409425744338769778381804110518740901391204963249370975893352946340359480380951788308596497271404334996195911347299304270705907002537992375968707313911062977779709587023855977586994014578284307141176014420542426035423965062088481593253430433484541897279560076160026578779122388975083764086502191172043348435055430775665386441836499014019190351654625974131564815182109296025950980795551653878147154517363514788528633768557305617177698302106568148644917236026833830739347213602839985085242684576930244962336606683487592745108868926131292716828764318877256225105525469380362123114795244259650485793516467453927362482188448560114932683652511671617527610406312313700000016349269948133838424029838048727794362373800679493921874441535760033393312503983068441778188581666599154498816656014396487634971685602627400218492769648547154281193547186034793297325270642593324272935640790669974756124604419738204567739219375530174107880658297225215216130508592454456400422280324694474923004898534917176453062932604240658512536463028328470694549329407127429452792590974254679727150780688357613832882249789440785794861777362773338658416635879252022210498014355872189485896816444963808860388735837333002124488169115608131311307654505496119980026418373800994193088961974126659631335915831640303866809831351853052845360453054012397048693525649534921110445725485632369341154231717927053001458136119857429246806143224890682457491690371456674587203863405512776027471858963703492283144535382831178399159500124919783857034605884136069948031910954465316414777468102892133808441136579682678750798122940411917245724919290792157346754853476330403902785356491508695305792980500318172246850085598091713806894075030928702756789967512554675344494005093331130630819482176309652745413523259982509383676859778991340616748808768113838928186744013077386931371483742826970221311778667592401291142309721579710492919234967599975537418754511992882689187171522374360256856909704994517350423273606647128277318336105437214932862743242867365792299940918046851720239858169878396803805729468392946625752619489587306469374448441318012292392956807128073176470380802310718417560371628035643719873839380289094528266451318879553334152380175376043440027847276876058798763791220311255098533021965331992877563941114139294503902680319111676729229285231690432884932207581296450244576189039439370156297471373529655668463090127841521770268806938752084059935813598252015532153761165557378403250261560644160323042875559344946294871369258638416134418497351819269752409601262016478060683514005414324714325147555963683878925822473911352980628369851316238994683551041458387303679815743882013047691826801945989836360171390620652970433736868296289207584498929168635283542645930554426900508042390465064420842068469073591788571037050299143025414552050223800202602845075443752906146843931981436959603800534726294434934492588607205860441874981921574716355029211050014440479260770499169959219254349051885294428793846729429959571353594298978031485011661646909535530118896240260043943042092059010907108823779111070318776816976676182402202720707862355786427627453246671829477011479774144097113241192450385983068507355221548951808558459529946551623883574117024273816777620225563377307901606857705828001077128043580885926794734101181065501900085973811443557085537634190522329014597203579094100727486505409968839919644631085030816940230573098804436611693953196443003131016328628799042203368275351245665000579145224308221162832116886256985478990064284230097933555998208899270187560212542830644709395523928504769090596823935213464497984171426213264866058065293581078567674380452705532376586670209378529058477646732721522537248822520746265014422561110506664880586569285777326052671676200440910478251392304123228040248485587306976446861462998472663202806368263371527309034980428845178599370258392704171810232270233647313795596864522442565218216980534469825068394321911609464425421798014632249362812500421793137043087264236036420858528219096274989650141360544781917935425133730300027762764892567968685774066109865861250578385485433560561446247795308775367141381294454346945735323114753803580944144085548291884455160686161612162149587626676587564457519781344931460848269292538371112369888536585467392279011740212332466998144041699169130232608782334995593155445617898022244811801566226978151446043150526216732539366057077029758799992863643696784025408548691803407371606118227251699110879425910370324468710031780231942404808876708317776379050639702442780515102720248644482373554083359349906651327142369742619887389216049561791248277707830472441722780508834925700208339840901858185994996234416536583752539583668659620735947433179943223514444828673483386890177734914819717412925372115940192109378543206777626503900656016603833998948725349767141010949119769011283898851923542161238994093662738663955597058631836455049784716196022066685647859572068080687359330190756841297867578435889897777424015543530703081895964444525162109256409542326069962758574879818070525700053620114903512822750812874753572316799708174537732021257181777163381553164156659846073724323689305636535134696086833883865158307072414956247576758649523976811408562780650289906868711540159633290479092609872346903562578195007201005455611853652604193879945549434277728321396218706237819649733696817311051184314929362134812093041867463515040270545683021461900530462920922331645894503469768760093039439813841962504188807746949008423827911740298341090018142055380428967211424877493522509319290282789681623082252566065768538533665033477692229317678634439229909416138436148241820483125574866518261694236998817773145141915179579093813330250156246310155258188175966690964370159216790617153064696343620380510698628415886089411272459880813812494898002697489781454344605503204562636624583187299604551559768381911650086789071082076621875900158170351522595858985779160711097883571799550774702611512232124299219793625172185724176309876006099528791868835414218458993532469750719960769918854374908654629928786330381913149074958477351099051358245881853533881226322823603028973235190645734855314180220103807886601416727439720266784106842149765742825245096260379471468886238401953601825198909062615464196487598933223803196601068680759863185429078881500223785162733202055953724397593153956430702960019750481808648348020403393443847863672556749294213230088780137115886894669086218355340027728395101893299742795899114515414288866767092512730631891981710835385522222062977684292971283823506493296787171907032443306077816141787561234366982577070881036289990528990840990466741237315135489513600749108581508872267969724687586611203782590069548081425779804231458141197689798343542269659439886868433235841573555417607446634003617107477389194133814688986136193143507495224814266828467980418710482724007346275429362063830310054104010336334835697773782881609485768342407832815207635711775020229907667458466003182915821128887754472444842596519261087086345768822383933662128741046875166645717510149201513129812755299681917112888081969839666358214945681911865480775783828342985407891457768279784719379198554996684301249669548073508605636067789353354152082156189859697971788446919687740743123384603728107268890868648852535750311197282810034102255001657350982396054695231639009834057702860913001461453770946491652915402697359217504335938541678778990890353590074152466620923676243445749270354460994615493225104408418384040961387793197958094944596539710368395616296825860482905693538780743351622110700939381597125557949676750060566348472959041676963325116126629290857980168433590732518627214853146637725367298978911067744584551122080557700608793283828866141820221726031663137755785488755040383026527020183295104045061314866873782221549579006744673813620001313940716223108797192963292669711680168756554443220102158243681933218013492515167614113767885140459161620496393533741508909382778170647323541755995191380084740109148074602405351797403193804842326822982838642789200761998596726059842340515040364204704400427754562866844196345759354992479678253423206702911931126226849037729391368688860494469396950036458921566788129460590455088107176217219124385185023995642925047069959199327499183049723291868574048804534351466578043491527104081605649857407712263784291198776701219259158772896010338513846659889467118805172937983550971673631536548753151713177531402873489876619505146059125971790202215583181269790384061552928316793957690335094042785017961826965825054804567957418343715338109270714049790558557830046168438859883939005025581602212331905776879662151602365490827280919901026732481779591169710276362387011471487662347507006421778398262015903776852438195858973875615833949265652718143004444524604820875358881219615224925977669181054576454407033717861071953289442542593241231452801309409667878102148899607579023117782127083674942273006431454774943047983254674266588403340510802911091438242212511363199628860895913777585136771968433144747335362382849204899255896077419894033784049622230632217995049944276196780734493342344652031046286821472515278535457364584112130922614750584789259314961391831870641562411170398281406935298575286718066252267219197354142771506324073055216966839836347193836421531980925279633184519099621321514265292532768354908846097899794578583807493934678060905125097822791434359963217110113536269052386111324063005556733246052314812561003512327566923333367305102300741984298434556697535513347954515153088751735809092262933012283826995096595943496637182144358193229622465416385978728112512090907720762432365205176935632943144020427755455326266010380003261408425859620831652325754636410974697202481252103528822956585260208089917995114103238240620292251744813444313198729003134864780916217846126244861071240037834386304095238768331275156435232516742751018720076742448150215921361276352958407308404930531071929163356590443966381782090762950878639978089232456085459364490924270643419019801827341270824076239663352121282154038364406044444454978466254514352461576825552674085725013107230431935955515798643889643611454248334737991728412302660355043358509708033913745948288877384627016409963525628528969196072057100113266341035620344367264999850382208882487811004433809702535946154159859776729329835449743522156878132491523689039530058583744471660221453725319982900673732492963948638718497505939866556187627231050689821268508842104482389681191778992574373982246674609447752719080424613716156040913363305441276619339739955913198643942048986492688570944167772723533038397922225428827153014369363003108758271767399447173334473960498182022813360515508731124641355377734747836404005316254087209389999912130167917330779160963904272530262333583523198253763428882789821014006394679095701160300077708616986734514243834205370443915453955912020462599636558214137281763504517150492878950552158280531354487689810757882155738691265407091783943462644720937679627608442236763240440067333477653504336346314305879232340745604323167397541104996840444932857971009787276380167951459023806778540288993824983884086894305059278889358122873972581160550080850328731262822452410188558788605576046274415232647299487731648673381457750475281643906770743573072665778969943532394706135841757057577065150942225123317479322833590768350671792931081967828599681545807216161911251517439988519915690789921770634117109847609420047381905283777785684999305217247432794673946601159812656552900303598012681951705522356573306144909154921177664289110863267980385139418738698460475931965939201814827564842102789214308425206609180605093586969822863293768202121775286696889390999077265830112362518008970636220000613452795051023354613010306678200627094257681355181764189749513345585600001409812418224765438859530232511929531633214532008481942712172907248893735814161868439125185010681147147814965252392840308418624518848970130347606338478798677043715222029369635257664258935696647021235502702083201204936969271251952178752459606135661682599496337780143137320320862966446986274373858268612346439547357310679466217886988099049524850561348486508991919453751138181291982939682145535752784293534829479087694331873977862707528944148812008322716902733012156624624646082654849567588093748219209789361788008957292158713824495145126133796167331272625916234730866893766961748212390701088042692195714820633793707074839368617633276292466481720664759294475788515307693012074821138112693958568155640663105506379125015400804190185135070012391146210210544982169961190586703339817416442571844150384016459213244994162108023341002626931650147414827469145622993109367887468003487280854266448063818246425050817710821968290830972902948941024546537607182666740918449107232521779835313475171955557668898934568305628441996827398761452749868955811056564876973834609611307788403949074590372794119413714989809291137772495472338865302586849248520053254116612291659334638434595777618961296315031932123786132181562218476361835333252655155348810743216576384758886197248110934914639167260568717606777844963231712053653417336201513451010378164052379063873118642650960057652489057095352554009352798761537424609933581675752619174599286150785243875094120737930862440525097845848196385579372835348464104197869887721992099147252349096410473892536829984376849536763208943986376623807322767259401675816885130992242589335157666027012751247803898368528782948665918570713654508955879953447542535898208143716491559501756771158169741663802626512682715079436665821330176014498898760321150779327440767566307546122523397709344513139712460839802388672181080827008659551237219050025694287541614156547823143358173821776769728846391578875306790365656106388150720668832121243712852474681260142439509061304142333022059576442666112832631925707727330614428129149701843040558448667151611191075024235205802877818421121346358920539597565303134036370342422674162909106646679437113669806954574273135708109979265225301246109411993780143130559082297168090225298389134079817065645287913386980280492613498603569552353838421443494702437986514015297984188121463701199077209592699798428519230980577667912474961409857979869285992651043477146886074124162102880544299428688779116621930668808740000514942775167602461882286979883221547027652201954202273828416971726918554452739324989898201094705799196609144482190565488706918971376222262251725175879089449155023731617190381211965549537968665721192074902788041533517405669583547705406107145138800327717163757375536977035085711811591134987916129587164433768171864990136650256629487227922181395853058066744227854428476756302899086779580291803552808322854536631348421607326174071255511853325893947862096185866070856867076617052103285760040143802587252352289393377266372559353790414422965953644905776952785441398912620512472427723534892217622600578422981567855418499745551914101400659358443746357350453926345636573310361118929111972620820756775997832236798358530504232486843914737524038395763450606557886181284159879939694446227835930087022128059986292094390281498178777206818657506361908012985157737253047804696916666859143775451894873431806694172730716754156933731937619442037083743997229629698923048223144869820568491118354676160680980332572091236898125342514294201198909672522946481044240286319534418044661805246821357416036094134827389242080368186975791210730852702539556520160109373116816948201701991555968791544650219385996150451958764417254923371785828148311115413126595373132189141789712384974709130383320990628414069844162847596331024800706821162723542438764621966903031100426089419444927434719677080446494938051604366615750539646532215449898756899246331894603335125081857755993445164229994962382542187441135046721213027907256316643343652179634838572501717408680857932615962633523368788462582434356113323375061690596752746588880503335273202765814023509091866289489342179576851448643042384702786638046114550500856558789729418909858741432152375597458943779645054792525110665439029597200809824018742522362094645284134114035676110833893035045148983571263069021144625580350318096243539712892170918244012867086437660581412043218488180957926324624646372202462080938446088516986171199996143679677082601110629308111820925538419761839790148338971489492577838909854854742992561547245087931434931556169546285698597677974416051399608986575447659843090967555785230224976490719431975894194131996678967995677060388495162791854597573472347203043330574187038508521370100503675763705945139825440790020856892398030696560266818035035765608213837266561415273572602969904006486947839371110178571701202292637748938653485246484884516484375549304816983741494691507291489313698775445457569338117328447662967889205337026509145012492201598074878270739475624573338430389663888639056528424660593852181154900036937949179678615364880425187466351783252512789243901236310773040803326327082115440981054515126528526975316558978881615457336507043432983702099925593077080792868226134547182585402634569946076250255556784762711856472840515813133636699994953018002208038140296841151584632505591662430643379838400986853677099580894688112136748168117874981317098401268825745236440893530539629548728592708311768007501656697957955455406566459965685217852489507848642334085253798869509266536202161852057840960451053697535515860375867237056425340430096760575368458876318811871783870854093865943388182268892701761231014417763422503079421423456373533364061147715091342682211618444733091297724483939017808546158182431630746625593078003725279798683803959965346001981893817756608053646906962721393364952416247660894840803906424495703032448265778049225318727018633918496840238756597366149211326968877794721278150976890653275756978682818522944864107466471815697691000075983112217712655298684760917042278856902096487633870864850075469888525544976444640922004471265375771464997190603647063242313819521993498665470114616361494321564801742520633951749637838646739346086794565334718352316317158648676023749477751309373304648505215746068770010075026847958536749994385378290312662524241740894249695179956666401311717508627429577106663158732398697668526797726716717565981793810339433682965088407529938391410017885073859733623140745666209010078108414047089604210440957283286822778657957341405342743179894823176311711607245499158478905434482511329400562751091359952070380374887040574082036248816260440009285394991746026843443096893590906309594228093911528526740934971034390251960104037399272055721299793758151422819654701840580630975729744104156580001691740983095084266669538769035283300724527675474082876027139023142804144503531755764644588651766623512079919026246853539382837213605931139002806051624626124950878631025732819268663041491758930647921052700419646381503356379353489359497990080085038394420421163740381243257913527635513519349807396460667785376640780868078737706823785726440500333824160674930566042998421240139161411383911497729339144189807003543798575521161686183033428338395732269813855735570137224170525066756019198023164841197518435504944588653436946559275264140216790739125182516872384755531551562838494648565297572999550044882474950813814310614292756412171233318555811299906545449131616954522149625477360020743683172769787376560145346043985558239738068648607362453060154190768075628859731144495055166536695246914189640723511808470087668944681946999256645549271524217265091160881623984990129731872129199930796595816087147497982408283284563311355447272992530072997498513781049715489086856065579656999014787136331851833861786735490176110559413159232426154844001917354696318055579041400619160659635485790289993385827227801687743963173961712869613636778802542106823557560752278333789868753615663593132865299822540450532876164147044992181525085359867644406737331992822079260407585090171026744814689134741784795188398316922316704610256107485988742707915759199746147255998525839009281730533245729310034466852823893026051165186539154207689022497683779625959300525128903272595493722843055865764422775639291385978906113899453208232062440953822818783627335563956875576357096498768674077247513655430391674246331019368436324431809325548010967039412936288037839475119019641087794081266570589346811647228502662146977542321372529283248223023766930834786559232810486329054086822965685883068638836704382736793340504568964801208845642590293925193816552922998354618798899888189118643525830992158591656407974765149187690038967152559662416879883922995118293295813554463055747934677124805774840983986899174409041653396629052847687688830547361844617345741058633376366692532053814871992432509063912100507961428634385686507543452830272603885565004281360806053392645601337137905792904214523046600902127071034539977933562242297331196652941052954888578440326511374253029091044748301456164397205983189244005668038087528897062315708928138298394107509396847916634440641769011844186197953455245410225617429461469199441840439180228223763928750223573994748889382291705706110587291841607164114351755147009833417883303019006900410410319094703028850673544864578600654133484091290240608258798319507898827145082314686367995360901503309977156804451001885473014412527758831138999094959034394608480919754892684127826726624537328079153807981421661962213168723496129656027373293548580826013735731245741479950146564063323407252329660490340694776263053518155812049902331075495154084178002873915612109968408580033096630821630639817500223846073177033782441914530611523306176199216201878565405726462025835029914209758780751451975488929063684539849980762194187836738750949215993689414124769344960739261559574371834616757251439869554378407262150385284218093743230106303659559340576961897744221651555803384413865016506492814911220379005232480242414530611307050249464395984950891899246534970582181573703797647100102898167668772802964477323607146279747845037091666556020059827444927551121925183226916593060404194785269174370820084913724209325613060390177997423679437522274724355035991140324062456002315637903405883465786377374084328658291256186916840945065876185413181623039228704685880067152921092678322868277212669597809266797969077614661185451151890861687724871013605902502428921298976920172160022553036327455604852225992880172032869946313337577895664671331986500770064993078534644706797382960341953936689639278320544091021039384217081493933179780769595230765013257150520406525322533720066492273657066531933788391647084924951990961712837356311737974880387082573525773453794105995213220315795770401238083109804174218886234861428492205550431774810213830304851265744092042045721040086530466028980347337422617472789955518516661427369881627275134561391734118173740039735262402977785857221178156035997344625420919351181506562591215697624398189288265984054316785452396881028087258985604127914935136871998345489794365827748288168744790524869044093296500146407250672580105778395952330295527307648430545735804172715902146760086429745257078782801656928359520549030106953696294908810732899860152231655239915792717386700998350917282397377972518521999183541096303283961638654343154283425055361647194586348775422502880978268039429791573890441653441960659361699790904258634861505283648974664184090216010836582071101376772803649568526630840306074526069836689126701372767697633077049669153146883754715030597920049185893979234368566070552350509183269704226030134966170219838392107945278403480048541589868794247802623879577251206096573088485337562388602233378990807219274557723821860640469314691047557835176950281155094112093502269270376030662873768182896558439596614639539278207837774663894039699786627279145043360766336050558682967142301917388807611020916374441334671850651641920807584193134129721136045868251388463336409545815777507778321317670864373599120171504615762324598943966905580994183638401255625944571122123214720560246604632364129079657407954142834833372938073061562641378274561779158527801664300053666904142767302985725379966386830853865798560852694913066520579231405945999813992040056343848158616751745277455112807339443338529870369530513948890539000461234715845410621890364374882700722055775059008239071717774686387465434910826892370988424110613798276040353134572655869925011713426908179373426198641116873341087087242478780806856037421272627692706194827346331942357643021442389562138567976115657781143334724370171313137070523066710244093713265659018835263085027027342926761454857908287098000624933522961284194792425450341159601054598433526750337655789835605562580242405374878053829094307350933764654897860980215686202980926580849037061334578840558983892232562337126640840504176020638460255590250390413734990039614886273452895634107829282099365967851587081474174785120624866417716059034240503774665936826368758606005961802541510694662268639106319083605384050511425513514516186172533042650024144417412914770442482979829969684266277023302421698370492676010081368658419669074638949233234701259418482103974909181046993302562431799516078940421479910734508660579150069679331077814805506199024880267405001711625749349389956558256885159016130950608665540930311526770381407783052129246906936402861386082657817108778964205204900992852788685447016349160698761580053606462266376027683818643494427060989146300298333257430624223741605910306440716471952225996860324790815868683046570871298827146231267932489789994726154675961663424289888986779961266589442948109189626032082479065541215544438351600838030756895348702192035310758825962572635497264574406995324712796383445517666346829799209573104507501818921028300362852527562829104342307093766866703572736682128431576452707092296760789714846044225767480165093920233632567659699912426799697200935949532395421611501550787132616299821573090555804279169314686279114546689757305571676212866349022642526654268035563362727114262578081772532856720970078765551999850184895813204894602965998766356975140977062326506936709785330851712910155966505229320242498710847486834393689765399220889815801812085342108127587391315537149229763585028448466413411872575045156430916320416820628897383190840128465534560946901926357831836895127683228642686748075083195183858839178693502562270019113443205320642756125619060578539747607345219805102900840875007955696630636005091760254378376447076524310329912404231420251353409675221551505516171808744285694036439961959009368976805727487626344517239268872111318635011085822261233411067112376512710109344627832433871808211266439884441693064990622374372528474141156882954035275780562250709771908569664806406628487914007388533088615432094694014740530479844243769514337823895192417099861676513125583028207412082939977257733425019779701380468837587672389933542918367613810710961310514342736536949435442635810163032870259371362658685215632728388111011470921602957258130872176661595708732834600320623620821535575112340261760756444790728270927784355939664715465035201054523836505554795646406548412675183160517098986152944076600360803635700535748316982664059982213803567291869377574638379327410351682777423002317832447336806784307107846218811883688143490732477157735974479913470429789861048146937417526907725141095661610532730967925383293117868634671843112463770271794823219715494652057549487181397724939823327619081966530516343522735823399630059489901690298108294322519402718916636561493698216290875837167734739342639408831726964353791178461658077443777266670357192581454649221822524819139812330763378229181115535455706687450682519276308471423077529186856862246419002241587578843497606953399564851048090301378673868053271008556054862280853483911229123902259870083045748503570118367681980109969697849407812069296622825545658463650188976208138479075717726394534522742920166783631589026559139373000065425222368465026069942361113409343219146748189848559259766865131513039516142443452501162167931227363048973783318503712665161965790762879073286759308422010354988827107909183271727871735261099610728872004747998245176110496705436835444957320302578005979652224726648006601812869756443216510820001765398866868167522857581954785455373620017771208672071477783388428256555930660043995690802065614865121349105306365115726568617124847382083087665695802432915655304311361865926350593004255875232437273005172718810885641908340617438889264948399237860342624937189996726227293577616757148797190342467312681910868952949432292126197424042362210660908891647817203513820512431905227674631289524450137994061196733134573787490653264831230826301909612162398674175765415738857782636363475669704065721293859289377713568582425923521011910453496717344288812055555334366749132600207454957879915063311489272677111937247907917882062551184231834588020396588541962426339123182575133381200450744817345852222067087461667090650056266672463714497630272397222272038980966454986038069886197558532984329268770671525825780175264341538397898385931037499676229623940605076602183777991895810680633635218640452808649882607505101444340284391478221618942369982277639532391799552650364159350579441244911659077799975502145689311982399206586211726150946604814067081284781888690929874655288556011366079492707879390164856027216426575776693967828146968821525502801144134440895461389401340918838157551202698361660774825449962795776346646418482761208989914868359061488137986994560647467999323759364381063413963767184356401944190049413794152713367737563509367045687340483184510629058799103253250656429050153506775990586802621611400053613027853193339399496227359551519382142504441582847537633261616858836413660463793491007060080369955950797422534027054520480393861305623075221097642237336110038073992276565575393036672628742652818796875591534449365605131299388129893171565596350242744812529639686516312939821339988081927831056416425467743547081291058995320707031584771050144375496782481034316627563611002266841590124699582227764294331009824772673080927311487561463257757683685305724894559791650650519480996408110134816076692418454633071038001567862378739330508709602440067239251488148711903016972953364636504959847713289527404320016916393633619544709275584637399150976899518398766072299895967397275306121278237592346699595906588259968237730729054261291664106708767506865549324166151433461995784443910340873060163174991629981554454688640286123365661031947146768419543466934807466218336412196964824466486085957601050241186419258230155441167791916492386569042055689088378899230455613330730943701820641782523691010225866593042594236437081037670295128537681748828645957403454864920307769800224000234441269126818711656488637302106992458426124828617442575213379964851751262252610523328227630997122269375501850641096148751987028391846727507154058183196002476727349940174484298290755748390269524148407049084878626723077327574282699313818707983683375421803263846954223142764517748944683260895433146284815821229514705820398902981068734620539830198934217848413270307589227982481367509844434761336523000698764694073164968012798824848015521830170869946929431406380462659067779969667383835576973334707282420970971485534419378746008251411354736349819302905473833316555421639981266520131614434215716694766647438409435644822487619629305669812386861886530688677936693656719114483409577788658718344505317419844249230509622641855260031620909091921758652132673287899366683998592660029288496646380833607136462524504562488960280842209935772478917446427447810305161906154731672575320753823785187521377267875515810279084008043761957115725112433957837775626983554387753884863003993991880778616211611711121709425689414705823742236112814734823406553644046786187036543650811467836960359442007029002043308923358341240986237723294361835522068364525269381029371238431358731275244122048845692647762992356339686381437641722257459928128985390679374230440164371399879803260376562596627076952291149790453751407405537090215446476474525661299149425178167140128577630283101726222593474110744287884318463028376428466842911121667788688483186125024525783040727798372493092747608507911702952144816210190213086651422076746397685741652673099233011456259948182084649943985253735769280774239330967552263740149736189566137401739543845949495155861003400068571407326503173643540093049776261529085039201404729973009945309870652749432423905907607560736232677392207921619776695771972884481070044383304831592676819682963982504243612454249280057864398526769828197215650998866087389074820549329169998221535186149768340719756704773159046522106177429597846523071091214663933975403320992886852782975843562933932017459289024043474663691550984319186571791151496586995537012027029056331699395341151507351655215439737030654424185681804509156389916981686640203053426565597383919434515130706198187333859451220930870880683448758136571178497106096193513757064107574623716371191336222297142462844171259151794896559626942102622625404698609570807556679340648447622980265139995232770296195748353765610630504973779158175361872945997991742296575081957095130211786429134647480744798308140742580363428104543792835154482757366452154000081481017911595406092497318519678350602018397556696871170168019893515091211993858194677421154858414155943580972475919501544360463872253264663073692335277178408493423820367294289506668319478424800263871085843529904483083087170144848751313671407785235327854094933856391383605752651901560432274191396271977551567363256011582476347161400439242233866712595850799569591730132026228861937294166315695120882554381781128577656816014213954634785689885225327763681490469179586543482814357694267694432872094182192940746823581229799563949282323725818379758088300709103828203353079783703921096842644320044990180974916300756617432335947991806239473800172899496444276850646363884594564254731948375860973978196715181177375198247249522683589999454544268106154776128649214092997678254781388545634753619862644833937925083676457801975702690021379377152524964486939594440987774967313941603259222135257007249156572845912628050621536830781394782390410778989147275029770748097373996433316439031086137893593267625447663825275631365878842326800853443020506869755377168837872799195120320041556173523870318050093435529201201518180211415904932465225120435101483312822506641896836943401882245475920706593096910861131792095722435855487339309086691363399450501871331461127978034926511382500879048091360206281698122758541810999354485217959624568467540888187549849158559023906923795504526158053766811730044121805248149297328442191829839799340068153061941639435102441813232047652295447762981669746547924509087245746972628979397058457915430802958741903687829311897216102955762043073398484153072493363393713622591327371595018899431495126370723689920735437445446293717755295827157381404078636287678822977670120059538736328725973273777607418146017371571776677773044142860839145539266289062824197008022641298521343439327577921326899379339498183884260233750018298969529889355784627969378930749168337510532548526886260036773851956678944454596293598563924808073782947852070446356829854071642430203864138031237880179084410129686605045651955486766511803738848584652293442003874142468510828926563830589637707053006553257887140769935530358565110978626328204055582693129407542295115953653798769009253050799677975776341137643262667399087880546020332681291608252335622258048103685037175114909215048572758965843551386902225095339598581165797354561890984393348730372293904829473716638200606549674620152614917790052624361963748788292117439604275330910126396579212547839503679576001968130913265132374029043906034908458429204185960134799291059117333431274542696521396505135853957316109708534453042846176286341490799032188159353533380151538538793828772412973724561913753352216672997550415720421537517675659819291797445323672182219055011506136544586118985904921060659783118176579868158312033357329654839980878577513148740203012770753802330395852943838521230548729504030431380945722856510243430935996539970719829479540355964955585839851580716294405440932857172389611914485585406286718682082911473189835622619838636829862173699145317187934571060968300158682690803239324712606638034796105780026299337474492223680491044699912650774031292761387384996224603900591493236256392598324751244402845581001709515462778697389224998741021924346176231808713638366358877603333518501901779615323847717622256781934466725870883151197420282131438303155490171387652735346351096084139981486576315875173893342043210235867423423289944641397053678371940432022685705603613242544878555726596459035230772537490104101397650740706602756538133968272631615008979503665609002338087263106855305919979363566124271361020397770492643940537584681348462040831931328395938693956105774846277958974740778719696462905232232513835010946637964207782941015977597386011215455667457920362468523750674490096799484534632114532092522730183776741537073971354798184013267121478392263840424740770041221634598709360620073979334978850097835788841603659553387400973594815357792536875365140572655334282144570707525830912458097403141323463177589038907759604011054711822979058584235148500919075644416622827061025133019789934085543136860630897756043786129298972157841294985272337806144794464794376962020310273157213870643293273668433542982295009295138831711753782309063312878036332874969557452293310572214050827813495952013048793359728475240299676223305960554934422243209737546121490957902649508329861147449537773236675115563935277491086345886717107363146869106770424259136410186782287272096047259004261973899357507695081667468702738906268173890120217735092386962125946254833074279981375989836051430024881236732356859584537109990913001232782813283639022136828541621430443956901303045566103596257595682105201700503644491297499226594783331441237943719748747545607733970229519174845830715861080722528161235531874474682121146829761357706718617034700602190031193871963526123705707203710740671960364534038389522040642906221336698170963145756162953314757090830824795199693235845903418533469598393994895304634824585687038402166252060427304842789097204555732912973907532912668639336763436965500441638755521124754660112213135224280407914607223991481752910551002721185708548024281690908687186956114446754319256457532828923659884402016333165842591855153801088492154288799678447079680524847454636027841079099809931293869199134771485626229992061693311128105354281744494748910009614108071198501025120618418613449372772370953026058776871398217285346915421218746565622818958086661399510673019034009583255670869443579221527846892730841241568131696399178044189199484640490207799623823951794873881675573364837365831048637999638208797445773053679739744909123257009101683119197855997511809064102352359830340170884606714459533402749471055109592873152101612477992543247813313730882348827746860540165515720434897314308847327861498012167666392428561212220002560124213372291954760744259633369283183338511089728064341671370024579137830091864397154584818149869945456464178929545397887806587737059594587061097254981507366578275229595900295182575574642349403483040394166266030258335633203308484891755592236664769801823525184178217160823536006974060355456194872954618844515648576636740893645334815657546658635439229216703058302563095996602973954897862466757384785833796724604931599492179095495330811167515790164075712729584163684200879038558610499338624575144284755844943728959200034320010757056976347716712277398729668617296390830658763597488773194657191706742383218321212528913225332674053540409163768461682107744194055254205975665137496728524258360014908653483204696800540248691180519519966858476939522865786873658556325664079316439538270214587612679698386851146470672229978770652696636413208869564034497582215420064034400062330527606658252458439840754229741660666835103361164346759149740787259277195205107841094765334509354503556203074527301572102214646793900922615791478719113970345846849968392264483607718279240347843893757714592844691256338126805904301650197448548965202301060401823101176289138901809884950908158009039359501023768201685476521667548815806619097653691093269735679281261127633155255833837370125611642439263864837619381021743676959311471649628055790496595696308497499592044146999979340870638664514206763643414346672871770984320963045259714781861090503862210371101467048067394513281869536428005962186517700340620207839107427840892556410004894252745217342908998088853293337991765639462047372956328971475986046651416820621065468987400767206356751758335979564293536232975094677285822700877693818657005268361669141010297817227216901020754952221525356802429628089586479884184250825513656416111411162166538992270243841285135583713165656433441895545652086599510787353183639470520801271398358694876690127348127524270928704923742640513436805760050554945766159197092237977272875721587111560734719440990633691669952916398490119157594078590543388568110472269362405748373109063582646146897764667588002041971159717656425649366821583451936225138258626910908764737363870713815185351649411624906933405383963273155436506594118815844099821439079937099428525427541598109310756929857521432302016889502606826512388767550079333581380585453148228796490169261985612088713507726934820193602579400827900718128626945169613109107047376980397585848174145218432758339640180826309902505412316535387269638693214853462518741106153868428177240284731226105369801230229951334121461178298386472252958590790755934488270340502100221954319854890242836396021283351355414677231934836228171525605328653510419019697703972055345518129681570161726317833485268552670112402870103105171105026079779320389107641384657399127871491322515974166096589473119285904324625778758075677845803387138493707889034588131248977815362372470056158675001177045003010653804070462308455433220084243067195370587768391716750107644879992519445613836645135061734954324164048834438769391639867831567657153251756432376723986544232613947545156862442155339201359368951149284859126875854635792278486501557975670468596468007940115926156031902526941470799086764060693874480895804221470484913504963567812512486091581264857473014795726585075918661728713329983228138170436412985510364125342911580365913129597361441913389478183809386129171889519696945982181513229745027233174527278584596174250582603024212804945012041661067136525176042486438800911546071959382697908990102651052755488894325666537548685085062919930234072275528168197210095648832638184626861557041860166258477078750976416637611940327483188871562286626920479700961151416622427682004765892668545436897673969344388882005129534173276710264941067477192027487429692380648318478048941553461157849896477714920313772028159871947287146444889631564278135544667705985464377988934702593722558760662917057834294911086857246022788126362442990227450377601787830357037169722810770947004643338031732458831030453570891883071567099042718910928553576468110408977163649053235295462639758118639127817855297106029861297905087923457852944267934729766990133286636062335926246159339873434445375389670358923677870937555899636929663574781424907781035584884152796071475962169872285699698498450470467019230414432501747757156497409084644899773237875931759930810590691322283848511087095036437585444156310422359677030877733222070865127875089428248856597779139961515871769331300130899311834357496096301629716818123382177327569381078437302538525856509054502093417620756155066949659758890812354224948560950279231319276801995348947838333236634364060424081034089415122341088110291093282714995033656227833530487536086502137455208623717750925333844358735587580295385903593291884786130078883696823862356388444161099342061296268533319495074614005430941469816489161983161535376161950754279058753329262499623976148679049217884589087711550428885369682062474525092227902279805532109566964255273677397530115923600642729451441105631040334240692397233236941641476808299683371137068565482607162278108406780994136385628708042500588962930280936992890165697351976351487702662993712342470265113403550255104023719431699279097289319311344693548041991710370769534881510436287781865004367993254673441183677798490477864829540053666690468858992657659673325793394045932004476702311394058032881693387456541324413391941328051248329913079784326036432247309326190178991458225019063090635543229460692058310212369943509865627256677080420769852371055438593555947657255311984899840549964911888198334441400814470231700900582646345507073613274221657192288015696652200617268021561698245494999085169213032983495771945300128104280918493653941022819978313071054500744178523472305447190384220053679151490467546229457208196550896868955493259804836476519964157365321608843475793213175251382958976706104150788646178662892788090425719329163233908611459572074515130819333438334701596223797543685060805572532278133880227529031412118831772438547894867383300444660075881054875664629239676782704597742270071301899106226699810788208491885728151353239513544387866280411656572126472138010010953301654654023957563942427235727367968131581628344063963221335822134968259177785067620392006462809174569321127872694532648646734881173338133918239513165530934709843946789565697979341432744689927232846719013145697877078002415903626810261702945460063561395994177639566993651825883163921271336217975617850865830963597395928050064559473434632916202061230184690677372549008056454605430673050152748388483319638901459304519361686303616677667344496507722074908829042138268905513652472621754867336647131331647748532781469547447582391543184068285496529828664162385336979118998117137650442623471668293925097296427199388506595845418753404303444766364994094428322144242545989699282453221969118919286734959049854925451420802837949029230448037198076022589987623629911342894098628869999718299060739585132105931386250452912289512002274420072242955886435148107226403582083039647186937428102954646281930521338700625889780235472934600188703278586438584445789527929192620415730072393703272023640023128587313744013231701608315342865692265093576650752681284517295880004098652162659100145690608497154326263672115404680076446032748460478271774276281072296682093630742637816928488096112431226328298520985722813680485136132801998477732420778825988519042471638107006704730529379938022105247339146403304926324499407854711145812497780821535049878163051545539636777189011682217390916793029467970705253525889040089131745795414993293302804700957290063291822858479324180380078277302144217858960147126470424766376072522183070955506784077631466440618841889233727775863301242082446288943862596526686960528329236310995185393004910101818977129616866314728063115740067631146304926564266991338309271766882815012742536509591590492631980063904216069597801690081428552781836397921503244751888783897631501860499544569554950030456706930140791878663906236698809335865742954596372585628036737037250419877352173480000423493470852393646652460604943670478705900072674070212019397434600740474439482448373821616665128403081418904111013131611538482119113333290814902902260526901080359848328708954422725440498088619683215167325788500158808581107445943723242700179814310245319429023358038798546919884384785690210236037742078768639485413750265514367204494021516401069507199358515757611420524071352137970023561672366815153658993187567689264735544162359868806307345410237277248572008638109626703355148431753244994057837917508641602129850608754276384588156274010576833090743068107511560628030423852414415186810873130351175841364016338068899132639227149306214165009601577941573631986666953818422293971221900439555830823879857427388246926420340218645104079307851080065609338647896075667693590607429593742965481565345160972912559633882611048185354463854489284712494526633372747103421865016890885155680862141785034803505390466003351655186608466739064552026519204362301983969619540823930302292644046252375193845910642304609956423876617945435335323788092429586012420320508856011845318025226775061795832447967668470314616438528170448308943379521514908341656723503265704021338148163615496786982824902625846205020404069118334850674365414157574998195075855386231238308361045873249073467260335510235672435309922097999064514300118409936543911815686865871370597258039221970065628052676156795749068473854739082261455740375049275631051964398122541615983634393598428996958204697193708778079352410822477485397737612542872399411262680077108187550146405481610229433729881206976717736109825321341039694854346093033547315811679285241146714842667017183346012069699357329091917153501744672876790959871238206892747369960117367974039520477346316110417645192507974441409211424058139726938889404522980101923141990244282885439500628617151388963575768503223853986992698087229732092748812674965780264301885700383348580418943517186577855997622208429955112232251111867304450937384133055795203468402823821623665257423731239754229435988473233818511827565223645724747177002455960009526249931371454467290145539466897514814299244011835850030666160960461367699972434647832973430825070534100373711196470761605661145598225829613694857987692987571145885692045858048815784593695467481567358569801775318510393780110270155035368908230313363901262118135946872455597995908132070472022423133796940144416344722617587240843409002405347256340871787206128407172996777952193739969469131556643555563910411326641419828106466653986172986232455741453557397937039159446871947688019269571518173328580908683592142658418011316733467497277169380976945306589130972150134591803707017690612719317280880029275093665582959026499987830817151040432634343954244425288333594022423343151658906285027629689842944724604717433445000757488720507969548462698791121626285484748416971121222504779904259483476955556373162587244790528079096730030054069133116988184261241472389420827908001288069899553197960531434837341904810000748542797968160266997536124246573364097164801970517132126963890605781296502737641214404024454091454642139278533859762493284434282165507245040013642315775880547508150638008404369566771213423851000907183248743876445972598393322118216967044951513962213063635863086262794026811411830809818979036708386894999160411289075124197769552807787166734887553323226659541541268169355401876210782221557919196518942463290918745927993800727036639686171075649480800806154300583066249577480646871688185787821476950752839145359271618461889682257034062065242474896494636780289704290007878639793579795989801397570745837346780691679032957123947669139406050079169292235099106143631112816607828003366458155762496856249474333048224815587537220204845529987749755473725774863906221786666652226952979386717126691508929317841153518111554045956918421098578814985737009421328552998162357046324681194228332198071940664606490987497290041675917017450389202288306250118352377378831443714522957765079224222099422379082965208857551421820075480353874631416218285215241107958796289652583460292961947700436071022329486590446378644359393666659680272171415526127905064760275811878863895890492530671692865451091786798904301228678389476183854963479579029726626572723538455502191568318468878089032943192900724124515112861214758321964930516999116520530434546550075759297998278982094767650276887545716333344127255945848299195149439708207992599913649326447961007263899488398441325196073208754419338490887378450727805435555816166500875116448646123188723190147088943739106356900697005398297867171101151643583417115104969204362268866315468517304670314196132320091355563080521395561247790479938837190584233278271376826304702470640552719917352535572096445003451166460307275875565893689030440148399579534618711961184172748154692028867585104980763882896148048106262514353272329620668848991879060667635595437107130670012457579529974199430851291986799188288262010030865954076920004704493153676763658344917368644769868094172889083539032316200272191559799787016521070881896896307422021980311578554635094816502067427282286737315144523596096913598271339126341532621138441558928703277999627165685345429077524001944668826491847463868087663265411216990320249025181269339813474113182490180102018249680905250512154305532709983626282836994988281818077559866944647755430043109103524917611786054440044119507050452901260482367967418241549901769726774459109287010870288687394362185541535705899082580329235831115319535904134442816693028821054309251724419355811918320918294766577104697233308552135535570948825907032608056846917412989835359358256774578004027518182106129127038337149251751377556080291892776074081875003468824380000567454224692289725444242401823240689513568754533919956740491453040814752771835455213856833340139388205885214428345648894884453362275104607620902343786362488323438244358900622507161094009733083971081613441139593249343637079194617548064803659180342127548639630431994723401497658607756664433824476045024478189756185497298970483786524231691656641519153274668388525023356076876165180291291512988463458179134561054082715851937005285229294511734676556759991161349074217762639501202420251478213190972094507102356051731905013003392959287347265237120115472842251391617466245979120261005863879376236347682621101341745812356725082258272329267241649176255149407430191209725842942339396179009520939933589986571061206146726831288531077155419574258025798651259178986389449649964165548420487576551047297921384754707334869156770129209742010866784298437625681422077757522894182102312450198738432588041708742085689015033008443295272727627677378656549195082524078802858810521534866367787161807648711605631625895053605249123409512047901651297105489751408676317306963597904601115535282613644539592320908263543705762631108111613945597508742405494879733105995425048857233387824474348390341783578967188902326751505573717276683605965732803883305677251533430317897010632567673399608350224270295823712881772059908130266214873410273908878792686212939571287340049174055215005824274127920813406702335458654392786277061282990218838758143254381484240423919732656912831471559110998535121363228850646211639953205812022525749116773296442381078142023203062779004417013585463932975224013922201441977138861965392975721086166287668254225915748686538623666684305184403157276010072151124862045887165500195058334855913717341508965992261084390487674742549510490018488153480276060047258655794423015790413322116781081852675435475555201443401957738979233216398585491137387388564324980564112526182787518812609315281954042937096389174555116887310512364255598967399489193986813255889721669031085727928931887417440329231012546144244486939462354826272920785718755359914869812735598733386323302485237998764764856823717322454231962585250877289831326737769782650430318542933755350972770979648503971129338370275836519684309751233031549778357824625329686696928128631609681382177003616484239408240887016184625076945249186382346278861512719974121330436431196980030376249036509049940060079936742331891683645788177221678187869477766704421969385980349706088028197119274450379455992298314696858933321631623945891864261729733417655358918954258351350169217523281274962507941608171274366087131128946203148718652297771497764820735239561480503787182250092489346795044880059296026637952349467137179353184809256293279284575996453277927410990700567999417002906325373257823080722793951139309705731114975454335925257613190614657201151940661216558901665755514085296859299676654430734383208527885609367907253736331713146209998375096013308513208038682507348330632714821698227325097973324467126579156960534988894936753480863681610183211422998034770923980519779890709128478479879684329627430302746068676893029586573698445135242789722122679077192627366896878991985163495368400917812510530578089994020007267103223619772088267283158619296739547199873051688596555401386730699966603837908238930546601392044275708001727198215594144226779344168356341675510356224039456648006946304855242306096309360022345451051119981438642893553072873291664654191620287685310893579174959437107457649947537026118870672609041614032435981330529265832001817914551645024710416842553877600001945693365379300686695834285882886375124173868061680643717253525746358756732261797330825174958135123373814596678690658275963153678764755203949486875092925471357367256003525535625712814464101321487808549131411283557961412061510361127567009754273717678600469968240990199954483321224712302960890376924990759222886870801417575772640697824556418897508669123834095237552169799535233580190523678369040026503258371847038074151809150882750268003111593904776762284311812794949254589802274619317813524625325426044337589633664753405633326765557810814954779726815036933565594907875178014724136492904237820741069361292345676962102913869040815159444982113732974326254732819689662626576835369659616063599180867856341860817170600293365982886478122849342458238858943793011480579778207276443341417017210827006697835742524819239709287900158970531776712348101442637031852884368053820677724093175223823880375783315737556437656944300990622557358128273207691132023937349775688048683428935724353051484930076311248668284356237751718419058303498430544938464103094955482443529766505691337552016732400704373998634394233565255913704971661136787159675184060149012129555442594185916121426774049901335342921424353259852797506961038073008317303884401073339228284178150376949448927646891927888736820087145321465791243178879152837848391872473975318342843519932477368526874649029109847335755850542468854775589754957063705397747486540253415921252139775783752900210181954236847482550322374717249722994312607206555413505239091172379005248487581424711687259822509027785756621673632308438604540821449073509295429356482821271780214176918854326937652688281969052911844210941656089687407046914364159605947868066983063851036361299848835219247896173121260541295440689416688852691703704096636662655903419761428314106543075848672536660791661679967554781061782256942149415608888192742241049885245211527604647096480690654596906568994771599115548121785072009985323495713952345229748893451304666275417551217830405450595259098551059236325678312191619741612546632762391331618841226057644958477437293298565853687187041190947218222120520107331863379459135086588876809145933926015573611037926692515155976122684323291503211395114904678536422432615223296585699136832258422234525082858868890459076955653182681015837641535371782623370997428486885263675361734415542382556006503635015331628132407985361984659848997332209166329635406030676367832237369376408471942500223338695174822093946566175576246921416973329869763518570383084713230995235752471832983079610045233947149957717990720036324839334032314656203035464912869956927320906485091763788519992908222114001886036727653279906599799850251037016873025279062840618671411564921683403330703135531768539141274745457657291868780814047866325637450960423288919235300755324154376537576282135002157721190835796899002629461714816736053715397079171739770201205624339232668030377129894051467623913372512707217401350484076252639951795778413441243165875698047726080000367362275550923042529447502585075005734070564109495164270503464960274019911878856919028772808991028103081356851600383287986436027302485645359415202247135377354908798553190142005986090117392113131694983281270721352949836473703371805392111287888607689135120013776337609421174233687205337414204850427759032882030088354003101066526768750753212787888669171235091134087011177715234852051281264461345219183631996066594264034033306962548829099500103494034069980425408739954809850456708807247989895735815043898140017185397405379633106460790500277838017040100350095068538273037323541101766632022410399198112529987424349008484938218759687792756421045231852891582570077794193369368293253505378886304101626592916598347107555573760487903716198207668206731581669994194312567325408148888018252811455875036544959628219509590005815013318267726033843223344556166887970083239961148858139870699725143959214581463523732938421637097145650069793499102708056466000399703076523330522456581691250298151770632906632292574598203183690923023956035825833471997867159107214352966098657101475612198049194497310012149534233079838279129345627981446682703197101794713999004085339168528440015764349121725304216151283549019421164810317600171665094033389092209007731484517589146550238972385593799627626659744367246718767151763857817347955709526825170497423821730925120587061987873302106672268635524990849876702155064741428390415779714439994361701343859491049051013815809495529484262333732442394846575118312329105869694133625097602672171599274822172741461277440015410177728016938989261775790826100587706953501125176613466478106660215932343417459966471745035304339851214329754673425512327526807096895741952641391878619047092270535744628244596706519847866185464290068048362690974738650501023737377102885228344705963093913725393612187906486116685156130176866748321631178506299730239892375722963947897985106837495896575345835663807138824099439067753132586883861661934921884008623689233736813853961419116343636039883475240903179775404825824013620779523981416192566185672174634392576424197762272638668194144135459635523507100173754656124665684307191424274830526694385418179551942583287026407103553313349770860340675608011038340792217546296515134229713097507463198629981449689070899287151649508453103916455475065355526159692164024680634692019355403083326015569417418531230576123061081461858623053814446637361308553346524791080253529106466204020423720370770112465211531911894704664840354822217580192165229300123441849388629647940594185916661184657456226649272784804588619372696663265232444473265408316410433862925110413565946004209496814737765647976130510911171727722599902934008877621633681615424444538702243936637597469595289476102650734457440850996951820956849780087650026446787317274011081854830207907662096248493547093566567472518623077990891895585199170802236497973416139715863173683982012742548981961283511953056039085123504967699017798454851419708861255660444219827169858377530640315089285563651194637102419110488680874460696711709832089021204490054130204230917328838546876484383352175332870634277834108262431948790422862619279838071405240724130696118192603660305484416414721912006752642220474247231170876905850679063547777548169757340577916549080385380805039086420299338565358664371833456960866008785577822478966186301622744342576716662705261745307013636608243789070589127334013311706172537022428605353438214030046571443025620417061556798799199704300165772232411045719267936413609027190782966788288196736620256895035101990816211372993747226171091647861035349272624345786772401791308840255718761847998103279940523971219406440496145966353501480539236792264824170124770753513957940636721146965181018600726934799693310871679834774065277214916480796382805268274157027579503295450816604006883917161778983275919227259182072196940820837801422258550958951924566006782318874483426259684519142126245321059982585072594738440554756686809061917944684115845538983612164627329336394305660858350304345584408917002488250328938692274446955323211489389479367707739177553025254241351537910716662881547225729602330653618112548912330036086957534914688972817012997500369297103054867606239607385913221454072866454206631010280514164148886359898649210070088777221803059765497619671250051100785746374153628877912370527681416161645913295956837625539016059806968142535531288017792390492976574648607782510762840380978401892455114278359827221562743402543784118497480206979341119791678575619689609391439373437960244432070514324431730562798625222897255418685694082657463300347306645037688962766309095820746333968328203432183642276674807181196624999691019618614592474427972845430368756997003963185171400193701202761007204433298131492047604591371628414636014764844714524780795414553726431522710833311894647875340377578314703341333451853778856515847697582309184377261245648944692670196159612797668332123638087870755138399799099666590038435129252769799857243218474679380498929233991753362452712170723062059572845817008763849262796502210484654060266503079624861939819962770923570487949203829321790098017834100443007906316803468368909265570128193949383233609551813291690669850998132998229440451502748697786803314488199785552684357693205527131238646641769936023740923225868380871365281524887724964975320329993375811026431943194317435046485510341560303325775626149524797497986026487094783332557180935269526160076760470279583989564548640618226946758884486733002600178633435601787606234047318862152330104319602661996223517569641391328109573269746591106810110590186741061336730000839013226909547636006373135388221328374577649752587882673752111644779141891362596630456902720318560882253796753929763035003985165586772317326114651769334718304790177895704740283966882422392516887615930724373619786333533858502778039269118338367601376128976137115952437442587601093883127077343254167953913844311169300620246861978735046342955682321634045173030701522085436363277025003235971000251873786574271968616010264189546609376244369668557923423330676733916801357642782158856464928806612142650972405480168038571823416458588013181534677993380838978288711638375328619028800969556650263947077656919659837270816042395807061132193168338557783474996669016464856894335106254739015070860084437006190840840202387744076913239205289756018850519200921426659921608131415808616747489598213389782559983166729058144926713278669961345353706008514470794901739101022955144971757877897699336035231161079628119172923297180820950531015081186486110921944958980006749273492789260171405355579706744587826103023142837944865622078217408990694863641385604068253225168615067172426558512320728395586394261400502615411730064447293728024378931636645514250448518785497333491210582263649357480763284958092181229483269140905078737481443384037110340731576917020682999980039643110125192341563397118178811210516162431444860670622109175250896863771381062153821977565169003830325345341908656955375358303988613982399129605416625324164513483319416704401447506048011740114447711580868411559184273443443805365244580773181305545401728275295109128477942518643476012865278842140208788743888316385868260988906954521260335823922009431057140299626157798356856984505921567112574810201292103974464607269049646593672212531392407087988080279920004013702342551515624593145176359669988908467136591335002973118680911903455111367179994464429925416599151681318294451681203924430461111527758579069878913167727093702907682588013281535194054211498814919011515821752497440471596576079627274062112901814792846877737783326448024468806065591806519950392029962358852981822821608757820761018697705512810950923179209165024158421522785920596495829316692779900041003835611262616458656615232923041621651977968016557051034177170301319182748607768898926760778869466477369074353065526392105923754949803271773561848609822349390082967047932640450268661877960565023967157762496754394303784998837995938208269736353433261939264781069812682493715447918691306397576441264575501602906064346725195912754542285349612724844114398770337243386814149751598838851047854684681199974254586550291167231052117730772249317239274705174831052960794939402899270992587080260532274811136962831986424451182191158254325210862864150915839423881230269639526829284532688694294955466679771588789167500458728517843564785777360815987054937380914005743362130618103569532115647115560889007657743319779599867357687693041070772531736152862349257430043587558225553472948750946531308651526474037240158744681319828771673008711471652000875745551670611641501635389499034949005121398018091259198762052765492788100977726443204702672005543141973175142534932863114249883056376554427823459247645005459926831626159155878058460934637849386369331468675773836642693418196805715925040163528642281499191082727048357073457555824514919685647052482437756267056365026281830077888569336751527461645665677076927849539288502930333607764234579909312291483622640071840680412827767695811554967339194375224543911213662042376338401124884705592447849228684257917260549862811347048370618643775335208558797353143997725245682207433450716065718866352025676904783687990483157940362986195409491018204258477988719691687939201058947077680061687388648267141885886707016695308305396692473619029711839598305553680482991076265246064841706086560663972788428526816312957457250059871594282124355309627091092869173868837678252831233392303963707702908171569207378939105794097269409648516689527625525579890558374727929714682509463863340684381041737753601006825805909528021301655158191067846230128512025025683064922164134696570050367297919905018304455280652413713519378245032132682565832162104902199626346296523202012269130565406319108102227400515279621952460176113463717069349464873650968465541464125330999263063027858992220889336392054830713166539693877799151650450694453262046857112800216483061759818869840814670361821231605939974479368441825629576855923389818405390956721223200129369334846651881213462444812607837951220831550030571617401261166936764617674679998699444058057682496734176928127660925782009008361288707352673287873878211370158246469108693060970326010927926277710143120367110992185158609054497672653061900455638898978973027217240784953089690495030824933534712326363186639132881927978089821237694411307126428726520740549123635170752920969667606912093276914193493347283131831399514762456071601244015794663981343795326579025256536103456011606149341152186524413122556854697016125587534088918079022560223067602301234992285399328301960055311913594393992660711094993313682085006596561107871203331157355123031692946162003941215024819780274171600958964310178701800755801558477979749452234818391402388689276083346460927110326553710098615838936191082697302122230374834519442976355725679863251105278780269834283271651785602931842038261342136144865776458601841083416647242061974269242763778745014415449524788553754166785330390779098016286817785717233790978373545337558335145956182486285547645941752991573616125291359591641363010596089318992379187016992157264257324324373303969301864754119631821293658126122561618077791527761522997214382837170973469393524237957321827982571972198753690098809502364570790568887498447873665463619297396535500972270210918849451345314226390685073844335638787261604328830132164324394279157546011519910902938058497420843877941876090271490527431185219518805481364838788014598254463602185577383849377602025844332534000170808944531162187162409363652945820370686162781609036456753405951105717317212405740005611776558586030886306602448204731597693145008798217512670575504776556378668593291279741327492146893793851124447186657685642417826653177047063728100322618701077792917275930171664731545707356097566286184566641720797030757269115879235471463146782941108772045569006245840468257568444036688623190295750650167082472717629558757092417724794049729058627413498757959031935633441331217325547470613289204122997986909896034150366895722672749477929392099797583895369004039608877773789758984713805445583313410596760572978364992175025310474389230548993777529205319836909070015810557924504648276790514927279225176070247192826139577234697213102514092651483812543150548866356062882164910288861157396868049689861271050516697788560018561601070960293474418060599948811011555638256512992057398267401083495819511259292766442298813587531032290169554315977247125990085306060700130143409304702625396191557954416720518203428044400821652418729279445580778107127830074230934029363698397388821060720234818176621594080744480834671625883163978795357964193484947769383183171706109362892259541252821554158559741374028438051752818397829683824830960541848472164368520381263448184710766103820651598932197802172663353318832186971884091480397687696725407842041272819865309009941586980200159852983304502597871944180743182761245788624720558251584454760871016224554818072916125728559927797659139524834072994381985853250398932296907748866100172680553611923190692475720805836052687089466309651350498607667167750293058211904965426936171483609372086683321914040427340319209655744899102423389382575831712762495058307055826962380171808438754056475624830561381162054371505138169248054914785598978041702667879014114187576716946610023545867798907765588168044998845325503711894948339609579373987554444597890549849180921850575279412994421482496787898782391932583028198721109427470735663649265645339372673041751431379086638386119530665687423211211417896231521395920723172833522707043810949736312284943515527289985765191529422768432600552343381484214100038787586931388486100101394810276443252613054411735505031477175637987585804795299457588165539201121116140446502147356981138882622176547510605434224963742703739668661099889294370163545535045908476223588655555745846134497073353450547342222471023347156604250766685746022054130544746361492680653892928306328966805780123175299971119901151643499369938134842643822747067655525413153853999806213709351695264875473661760821478225944052045383902796933266570053584476778897459520618464321617685666338929926687315419783831492129712711850219779097537090733050765130618082681998387308199972705850749590849422490595085400944407736041321429172693583978688110881782571774916930785161811618263017912669036999556766252792500810450342801649003048099485692216227504313800064461688334381851280796239205253836506839541305904809480098739335989426324435628933444379754073959581019986666141843148040998765106644433985696406765249242478403358551174600780242932899164246078867356806002587399454943277893611994814351938604636491700366044547800943136960561465081007787167162272732768408043767812660370010702115132297514753568784851386024058398213133788226283823409603871958706669913621835901117949732078308330451007564140639153847722174286551490420840505942639790713727369250628738070962388814149578005136532823572231673721445514103565270987969901664350801801407627585268844503771504396250317079427905584282988735846748462010584212301674215621118975045938028263579275071735070181071446863420213719316417540989816550010075461632459296495296464555955878806512898918353504880733934204522324833305151943514852844322995659401494672256244522820068084220542874673100990278335639116806297530463577573075379982661220798980836382607176895937533173650183537643593020933370848767737775142321632260799082199352451626787670318323269461367810008762372559230618462338743705683839664667832692037822932695495401140292544994261950796851058156677542699798562123360115885579804756461149482657195323503158220737265699568440004697137028401630403658867628050837949260918596831816206186758587767586932824625651960068832662280442662352282362898654597022925498079645502116872949755212879593456046910294187971984165556565405944928150252905288532496689382658229885582795388685342655028477193174959528286895589204836837819943903633809414600866624113746059163295441266888917721819847190803039629408094450533566989817345660840665506064345105122066276584635511364154834478318367064319722296385728641960938943507347260523842632979068134879822012521688770614158999155722520933933381341882631644883228000959486812805439435826140628154574372922089622425941367016095012676484998633132497200526486267587699058821380860665859921610529289156379685273492772649409517684734386722727386511604329243989112169603367542869465974964660349060263173639579580148566913193784923319106089571726739782574091625265666041949729775881470554571071054890828419276603679755627539646788750284515482041331554251000135148704232718704854501984220891410065866950539577847997248084989808400184854575917739352890759749633337197443442262220035812705049828587969864455818818891621000099544707132077072022919639608165078692211384582871065614140507049296955589048241216262830269645605015437261462000347391226279044789885078973317463819605900366902078619496889916141104602251751232668168417857554059389186705923070204635457442422706989373763897266268848693630118666942132904132988681499286054902951063802245404065386031415517538904142512600688524420161780682070121533420105647678291066564686067406382019416861261286528127962098550955380652982711993755644807245569623591134761081527375079824827936585908369540857978984004033320419989475667670518513448389236967152998514823952967466480020690398961463850072539269281002178294272854399592503689614865002229117107718144269832944112255554541183466455536179366385966070873318430838314862815700651042444950160390999419751375394053526378573333640974349155857255735120993155807756831214420559287944085533767027934927972724333661090169901729588671110804190406383742761731253466884999450729886178633821808544835691488776545059280230983181791171445895058211260374173435910363067738930238689722427075041828745350818653703271037516893094239501146292001381527184516379951751626010480775688504401524590172836607312964126498992909881399466067851948738857836618700221208535655656793827773348098979134655484526435480953512297608562060621792909604159194200290544407998315892032944880210215843644058699846541149657881961299713393948415123987753077806843682021077363891001125691375233640954755088995654777131407801697302808955777801502192004177702128769505841219046539954034730625513223635970700186631130123708930490184950366813063719996251254792970297204922670174460215841950122958644436618716439460759242448838969645557640417965969691024227822038515615975352660164322561029438308069879405880158891702480907549273953844335170669369922179013038339574044866617703603864706119449889178191820619690231092019011260423224884263602102063779399265070346760834862737973061013613699224187699774720294452430690223830352317972832145561419843034747672668737422095229756183393239659355635872246233984783640809778728113933804516998560663437057865878891521089239091622298792262253865374801756520145694160501626711857450850451653365073217505471429773386186925797318413602466183084923701463332229195806135018059520566417037532889741257965862958665186759471988297381061553056724577322339886585734845381608933227981316638720303957136297806642418743502008241388174758552636231565903102780090465044735025708212645982476747105421988582713835976781346016971454135055723537741321246952799164597746904896312051276327817709894552245435979243721426462271804612453701484631120117646605176520310862582094058075536071822924419047751032627992610026993792868002997147299972360225134643357745358328820457432901599675676269383533037688900297842823332502208355947786425842327449742571651152332409593610449226670028865536678341597303486664932342444245049304568733034016196649093897859534520277975012803147580555049832493129484789883541139819033539727431694018987986893483718318634731621122864972673590146448655961579022207529794460267831313423651081592086010189591131077034245364291122816789253150455619494201683404789838604242738310112423569655975957927243536733556204760387335082872876882489002195180703531771078385722770715042369896972027222108153489753065569404165857268621055699284943792499248286282544429339619761161574146473377002281406695218851239556637396459216519247332649570189947827622357639062372778899918465031235285277242779982859820508182590201023516478766123387829322045002588877444369077756333293482236911814671980230554117388239641548641226690463335489951563826767986998682812869608964960836930896205323297860919352739005520826297888993184247996772947302410651135783473400490848383633456016715137745677183940404155671646628473800462285868328819138825489588788728190373892878373351354218283199851252490165406160219225544676109414076644832503891495131197551406142423251470412372461441965216362571270488196033143488036823231564720566394537238802479446897886285271828475710830642857433045678296065086134504637650055689860618448034422452100975744394791797863510138377709749515131686922111466514790878635328593820479872276906133690091734234662636097085556426220292493651468726844519614030340906686459950537101674904073302707597761960932910916258543895111810315052973113487264993904192710043992622124757639664432639136747770968917974739851105831924796261233095915301810495926384796966676582675483194274322576472031308481610163498727200504111707737084508708181465392983030053644780321310600795565103094060304880789241653274073043705333098212892810816551270900069005851621753438228815711552930002161425717597470451344142212832600682733091874378447919954796032634111914169304148046504610415626417673673794204929446572928142387311273917705027979546175338123434405838849293036935314503717979546469839558688845067342088726912303881508841319621575807317383996446438697312256742127471928614217940532288696904455723704941699573123173644649614179304766463148649467564819900241745378976658116070734625686910684323308985363184777430668118153010587391003141671398811404824929308718915749631256367807290631069790317551808868782791618951921008750035075240887551014743813575923561098525762808743896222404388057594659051194995762679973831128293962545909193402369873125320342974794294425823297553621018636068166576972827693533490745779999102390832232003888866619327476276540453729895159157213038870785320995688326416505777881366647878494533620999377286159251978033475807460863369550131188362933844538939085805413200741180061585295391558275318794062640558444167717758440481076814734751023137781613815501640017172105593658782630560587352273173012374974751290204778732661673830471763270276791374662512651776273053331386409921806229016886691134670501729629320513746019542113781552338966705332719017967279360833761524693983529135727344874534557260792932401578150839622191162545954793509999622846513331030123676087341509450860138480871144404450826265036750926081269196551098669847668109328001811784207425141532071509808354256740687488352016751536280208340201109883843386337092323568762472529673488525028233273321261749686511966712441701637853929393293687877072720397091015569383009730535330054148407075095080121425468736605560804511630844161072774119055030439852155732491716992212757010854501638840521431474928254511439215356416939911564168956458353653080866795720080249751264611765397306434365583800882020625611292416578837023433623145509964669949294551741143723893637200802613929905652644167665056543375324882143496046139208414506760137346717767576379239726936513760991425498996301815284137208966658409630884434171314909500501770221770642619395219466607629413331267163046460498783144318005360646391476483412627068010288347535444455109391438009983867262658679152575878205294017332793725130732351762694540862628346153797413925912225807180152651375633220350647509995808993604219566032482971194190720594284199449160575335705709880533927540879291736604971893433080616694351993264472010080474247207317820492144468157004511129478461761877020497645196297248429239618950303252059831643399109147877481970805177477545733060077447093128007984780954046166234732939227125136418257466431438566584599299376204429834493315536739483003260707410107703104417039777648805244237670726742840673558055681243824543334515130293167050071519904018401535920777031420840735933398598699045529770892235002306682813487793148473665743898541439318933183796777313525580699632768139177948223983574722782390783375960938416551627906025658503117577443838684188273987603542951746340731393811775000204170689446378481844367360385526818220020072793264129391415488235132846440665547409896224111935529699534828820353640034334233191351066125507948487483965931636483090442401847720622468398577760159795448825840539305689894375965768107473231762784069428777505499211594894401520925212562642199267828169114201395016504363523514056197934957301441781639699718065484596483286091648496720121320890327807230518194884359976040616910592947724786857884060372871043303940846389783533631564594651619391347847363845568163128569110209962637794571855958323209852567932220081021055403872759471455150102319443551393991943242043089144234603103697834947219774535017514186798329331776188371601753459907532754982115552480188357794192002030873802492351292460593668110379175085652150776621656542774429198411505694926124530978050414799352730808384475283851897299515050665342291755304842819507735151763371967898531309408823775043894489716016108775296182098429338424295213820798131770607715621974616065651149848486509590957794417512609179347876681582950692722495438129973718485413879674409038510367650041342377626345142233292095674874369214440750588866465738713580710226630139641547541853465709358275853715269582287938152033461073124427548887301449659082083967015652095227145458119917980418444539550435984306734018739472866957475620908951489762285492705231987927421511397827657225126532525303628387667179964772032451935777808065086820750988550361301717389947522615837297749205873867478223738710507797377493452429290324907209139701879284216468488698672779646889192770025215456324802402807474874800455628201382232959513171865780218532053991355375516493271760063984001065626046123400661980752230231984768532813549697140647339200583432057614455823971665185152051605848554373716626063558633076732632137737001188744586510160796274867237240264635629757489499141386748067265211757235757090994780949885037883306817753832120147706930471399289379201511046406153368462958355652543465290104929250182849642934563966879464146497188948907322521244782011683921627248465261664895911381916706763347368572531440523556752750771034763578958391200522007431518928250620119895205489173271488438743728262037841737212094256010172832546314947651353740921180973017650791910710136785255054870643587692936979437929672329340035669609695745670322308004967920367611955196136664042073703984960970381426187995599644381340475164397086135136429560753746972655211759051952242336691587306071128930695205410460675095959054932503591783034287531975585218266122900928981629110082865414939390503336177425164050086977789942619301310186289094822851030297471917912335342995637443362083581839989485533636171988603414451713704329932342779468183518040583310525202212258876743464716951517454542140546824219877165346748769731790054973218024723570058727268152657086310830230879753063027224107054470832104389272661591211538562691777404658627196022708384297525394269758716395465816545502784817562148153481430030912593711069076851055924915528590821932532564773656875758083649021278686250029209553533603957309253935061684718938576053089991447308895726098113456853526236995330265383380470017263627019593085256671221693093868652559220475156779638770000569689884098742069300531161118598730969324966593471347319923864440006585745377681464105441236562837284871110912213495304376945806139605960098223568269868082788767264153446757270306079033096930427717007439091999024662465126211494638050934126530731994030030433892816031668555650938132514657536155887067710681214899993737531547037676515286194920023940244920476779733882543144911700756723947362078956757579771299290287304704758483468301191577950042755062995965586623392751871334376697606807536299354917714668656724611512509245276124575550136068275729099298242623676315408724459453705820469523591149977458702275201633441243386153585562945665104161645758395835165704562848573063969360782427423203514658303144211812176158088254245740569533604298470007980739799449264285111872344922158857623350236802170418717422482413432582463613125040326325786844643189669460239399770871692219981217923847934952886488744964408226603373251409282908495020416425710129681200756353313342219256832819175313893096286385692413387692480371471236549114014354296860624826741303363690472315392363667094656019744778877147402830442422466841259581368818562415894701115607867508356064271846371316598941999101387156991260577131426473847283129397973566216623519019491025297145136596984703435117974674717278158779388520680198298513598171222618298039168891844731430454584367398080752700232806763304889375476349584213776580284103346256068980001069167615045362304647027147942647645998086764753796339780170484352940317511039563335456908788224400907852919996138174411784410078148305267859607179719766379667704809608382903303483339925368095867213549772995330727936741496443691010991906645949529516280464470706646742862400916730311865445540027772839558516294341546252252485839306562566610873958197735977914658536819494195943729833025859116265835623504879323658501117109180009700009987977221348095628216222319956693408649664558948864177047440480877678928858784443371478954270079340947562898763571116101404307194241146432464664462091768030354718688023097441985821314098444627637357782993769448785495008272043068312786801800223087110140852750761093104836177599622479533490236705590731662648414259360129218490057610407589621613304355518891977041581146016078295313935376423355921618111657023661971659271403726899741490097257276141082717815277905146945039034230686249308607270396243198246333840725111279470626213782378523389567131447777050430698602655589683887893909354614657501322656545971190284283162058083921232941075665281208180225217692400255119644545200157701141894961761270443499430910360657393724939394444785295164111940030664529598595690743340017731744745960884460336155680261490563759779430517282246070620076348175152591850933911124514719688742855990852578944490373637198765356664848505835768531246021442749376947555328162695078328478408978847562560812398897137682947710142603820969105816213281895348620853988088075980819059508201571983110880152007062278773548724047547400522991868517733969333494574627113789970962143810262685281266296826143008108587373837239700034615330053726467376342255084759684317124501234914704135589130182274642388231118935628638169705170445482844568373747641590465689663274223999594270482446877141415581975128917719985343396267321081706810010486121837740827622424873410968385663342727180373129074591165532239972085497496332508652109905722844561339666763946590142960725895592568696215439582096313510871358863972663413951926391299567270934946059715116372963540447344611091620555270892066824491412464740832321107039040364865237952150005057205216095293348317788312181770043803548658794960929455743363274361882943234724601346934299640505279874813446517054349191589208364010752402683961123168707500887960610750003298055289894192044745573549904739768442345443661099951660429479803662382568471552833268658171322378995901275208290362237885405403058516056688325580990349488185324591088590707904678491957819112612456210465132038329895371247841269933005862520847988512897550352085151123439359549624049085913745737300384146810647218685800240092184839226964331780113238375384769249570746858639008030730697641346985128536476218740381892994977966944435991295170479002534044041229905298321320001753349883078208357151288199944699228433588373906539656712315699116741999004680189727643807261293747254026854346781956434911138016140976228917692864630843075480578248415199968131114598239595112942300451825270605171097807966317749352339327538893241155820948637127757533023010770649481444568594494863742657596335404035519907555268863707621056917299852163394823734182678126374312587998773533639954915430126147893213533869453606426927517522306202532636463416893599930639151819763163132605475922422372903184658298552838692930854244587002893089518874387377723919873331109794882678404139859729145654977927855301640532975354192549612751242031949699715684212631868442131822143362220013793825011462513926559927171824765876762361917085333701410503488239394096370914991481107223097349388032301525740432722146294513559558956644095542847540060382775073797485157157554451140939074672635111396447248748442119088898255814281665556724353117105025286271612192123327723229542121533147332355442896578716708661113093557251855693728659332770525365644704966087896330082904509725638367543982717448118145241861433782995144016071654622288034448918604989920846024798187795502361236840549431730155842128706280844315644578968416180355953661813031451558850578378285407870703921032916587522548976535480978598341336444345058100297352866542390673586459962938316768841052409960814822338636692866557803675080273959359956940572556423842413610307214730597640292897918884994887566176256807966481487657266319959534184283660877059018975848317493401825231985798364935931332992294396606143648130837272825236153582173186577717731273442183857821375150341685787394673586257919795775568940179391131603369198726971999606286299818100439213889494980435826883475592950738728588509360230652711271970048338137473378624961641773223536416211664284828982992832774842999748087771818516612181286843214879921771227825672206776803900991619284807194386551943548407777335035604271737982427795001799396202720853905884458983826261078439298422118037237000240831512635293267692169267329206059126603603130738883731561683946620407785444342425011872074542440116883072387473437474394924385544674847887782649674054642427235500914634313155151298550016532932962051940534627444223549059895013427845504883134792918022685929091797999326100901220477565953493895080820613497863594699736120914179777526571796980609204694621048350132525168069438205094861935996195440125192479550432222466758075367297065668542617750987714194085094047702919761062037785084576796938415330488662331484889783070184085485369034748248024692929444331649185806886987543428484443010262211020856975919177454614174314493607965440181363297094200144867704648938418793830707543969797307826554628756666132622740102286821600736292556304389127966963698153085067798248652115782138122502664657505945182424700181460169997831214253039129302190542944139872721719157789908610517076030546490882199142517739840787512198835986757498403850629061339615455468086069154100274212521093327879255633357056493504544471524844364999634015515911565503058951117671022648663647249710863470582849642647651759860481404118428617140926268529897805905460166854861337265730835683991450857285952756558727397983349684757186593123442872241970402250852106252669720844634494169058685070587708955062449202006954477218963940353593159307188013680867832622831942131436343213428130972124164662775634109008320688255910821995662460021861445960754187274122247063475733123486140646167238325281296009593400241619924711538375063190412543249949351640224535522143457629636942176618679673542050850864340841147396515366789123108786698624158114861650802034613553250958155343229823956565381576574205198224912248511413142750999548543929278791898628751157988291248299325056682508668234456761461733456953916382412293168580680749743192456359743910388324070498584212446237156927911132656025934704919427795617973942078153247885976695267728283762083563981252714780858409507216126524995455292864138237664134917632201879890194979079937264769621172557908761260809016907748277273671091662920616367342246175121326568123059269282182913223088840368718864642579361744463363153107673495292307577859634658315433322656869755387550994988053282501356264650505205481781675001755318539818172898401857506374797539708375508626005511665870379860935337130237146971203231364391800392482134228536978076270485429911930205285813976465004119325089547598654363973456767176663990214205189883108875790602248975775669126127363561405800733219894207683829640522984976017819299344080916242262382635818406203215685696603748756723226471369810066743995371929969656864355499501163848696178432219328844848432059687460820553919899777302605637768470519711130688197875557622027421672004830151233377553665791108546850977432184239991006747931910726862270242279520630979167864742689082675718688616311013788414919740411496611533171150282610714979117788318438258305387872703631048574332924057737526404252774228799413386822305075840896124656698020361452609920505194850529836960660813346862847618467640936728091097994933633363195408863393786836174225622178540101587135217598967873991532362123325865191852285366900741765454875812890971353038163480852349917416472351893660990091556039906955760769963167272405009414009095470534211230915873613138605319635008499964526792886092045492768053848151142573834965011195510856424765943922828088467802042510237335510993984590265427352999154310924550992359930195938125067638581814798074097691680361134770643398696490103529554125099871354099634361781683952775032559433317837606208785217344470441271125092776255636545777132961432479758746315694624392958806533971744658071498826242754937320122758917635111559623492450970452023444220355933629494126854228132319754470927920891402085877572228292337260970460122323612055225732634860419955490780064210252344080929826524234538971181356251065069328135597191312773117896079700370848478931965358971053741364072608208629726513804253005088858687339115056216284611059357488617399147075297416130322921930022931149220673404356579878743113291940734846937589463568062349892946690169310967024486868480326318547364717448880378650811542151363638774231880525007949184227482830925651745678005617715378311981036732313497400609244932000436042186767058763212981652829018725756654742996456004310070999739619101914093910808378519578070836942007389958327009712910234023681575233414082647240689279165347196260104951435076604643832817020591779789530447200706971346082622153669884815028412273112281110711510930292173868411871213421582433535501399714482402506909398024215455827729545992314282503232493283173483534726500123746770278588491404800058813588826902668637030642359159793057489642786436837400123577005420004606454289416503644080251464401002736342916493145834294360173675336665426832349095699902617943403823647116284069272852572910588215824501279963894997279029967102475843756718776010787662176423990852558361878980217402355902492591169239066311252629263244490200213486704789503872498827849072160687684851664082729952044938488063737568514137794425310067199482963751796678584864032495646882500772685738992041376306453678477290259514945689910266142022055999741179027954882081371958551914619514681613080991011215772791588242191036792495445722377310761275919364307440178999667799578684443542875626381816525896011483144356852579174774382196802886697279349562864928395844698039891822178273018062039186469091029511041830111219582773940461183782227517786647453332512494017684707756650078158919909678281653965214537640827442031504788989336135500340539797357187553473543302430585063787732600257279085457339243849709475927524604155047896851366557454533211521987959386998766308342699532067255463717762402624297948924348615345291667670131504882822088004576927537737902720433155105675804419123183444677634789795633131995489271596083622262510963228856492349501790874054747377790563012808618218297265062892736355227312702567808208308496077809676563311634446388958458630556699645772149939322517896527127704881217864536461170987817621128200484841401823430849094836688769264553401828196395653677841033558996830845917316786468343658369278883985279744195026253032311155639355710278299251658766458092682601695743067736664831534733554246888213345684159065616479873681998996221186975635168075058217785213092101634509372527622066525386482003449438910025600799338944332888519405862505344726105434914583646516586353261212425599207050087089666064741167162069589660200792134550146524062706437628503104315460974597085673547292555919387096392066669423695890012637628533929346179689655382140944980380075226619286352148073350882219890526978573396947697376962573239922218029142073787691651769512162358260322853528305112625795186270565531267711641070801589989325586639021517368313357667224146664091569144348325168508185749301361549452274723997423750067213869556024444662173769952935229914032800811737723931670310986059937422873866922011780773441678524090247258527614088043868492322005600138747474573537891416567663589590678684019924124694912400892304488184658893497894749268364033287277234807464477156182557918977108519666855078661927294187928580509158501234016904011286815937143318141694909675326377490665266408288070893769416756328567574586533196975881129952719903863478574557938885486033051739371424972929838765367453912529662223456572624373282499306384208815385964418841599517925446750752541974272803289976388534187813738211750003673807038784935692819498281470279095053052473758258306974952946711609778468906885264222390990320983982163388637208744905496059017249051804275627369175183136340263986855817002723478044242771468172041434542755502684848265812313550629168201134325823375739529699645426095164891160116565610787220049067060350541010616333573928056048275005030078919116779615646631480785745050479456677321556800747809050490122336823871786737849085047565285642224591011146664065971215659445924330172453870672869664043711141554782802646071972064718563238790882296100279001824408063147689329905340583978190004474603898345054726846555576191246709726903949574764895906403420352010253071861667298760858645405796889251203630214320744790200243372679207716386777373968642035419906041858211740834289530418156614377555711460994975984028767151132296027364292097718000306043282696446245801589180588160973647119512188400621040534454788863524321876308744419855590187749885847883545277969639587701489279626928354943778643380656645157459540479849648952154878231371234708775913764797264715625835206658411110156628225908579022628196747026610898782760836789646249002043119523654489941002244722284638754637788699335849376123174388273636337594051883146472748291290741038071006252043052345179597939289175208535221863811998146383750821425889456278260677822320446651212337413129515043242511923220893900402169183102400277629824353374752400037749949711393534980835622487896311139110905503809758652386016510395226228164770113168768265422383598313958668867454927283316757473183817205550013255588786106265588417146899325764562643369436200973947679575024995319553076473629455936521395470864919461936750635021050791547485387145345491207715889359680995771235568545672188400268860065590089000136211411018465132681361288508123133886597926917364393268820078962139879290068258282440319815770451469252832962483253438065744261480428202524425274204551874314900521282493825981297612861899961928642501713445602151408427460628851904284170119622185772700379494885852057435110026538080733912212662215495775117088736853195861857204195666692262419504508222282931508398036315463134266301848417232674723999728461204583721477605257937557075032627529579832671318939172153199663867300814097250086877882213585391338806883064974190937976839123648433777723316764974547875593439963228034628587021626585736201355848945431212450490589265623432494356759860576720454473891720275423640064588536954647825807493438114462164654556416612990373051202290985280659470201002838932128036977675445312990168018488660189264400810972639362998415340517530439718336337043299283472381385727148159826210968050573489200610179306152876137186410710628371342710164319733271256620335625152440547010247034334266615556841633779967461547891204589267533179845624550110332020993505399665942607655074351070114865545320467540155520649195785549734346193071755323057151978775282139534207790304995694601191846234702028543320345850434698397487365157677092215400173842438796058274801459921188976136324155539945772471237371190857321776143019064706209443811426571307823409450146657195841303480078634417944733246168099481157027757786886507591428578359617537308772130852950537349009378357376135701973204410284571979406986732582416823473103639207093547131432056356373550740616798300159208870162779801948915733289750168834386206183978948201875527011368609292422314412727954884029897492706747182250144095770212688640811622802256041700094113425972004743034285439781715719924368296148221233113272490179654970519960019265921812813030331166666093395852459988295507545334500356103578594765685303834427472457318448345130975785231815224226850074676074797948610196568724769206480357778998111546900831405966588523804816787075177490518919690980757612288936071576021286859776799184023882446160274379851248528275655852135325379611833356454540955719633289603914544257691702916394689309510203243978162738471901939535027315037593673954673771333795586580783643914564072926401941126270853792906915019111341388227009162784810208063222209356298707113436907959199833694359111821643783844782246040690154344387571855901581619305431539189420494636213070039488189683934760389335260156832180046953008911596140207813238372541577417326358405842815452724033829504015002122779642985683926822397975406069090880550777275682700597249504132515452890457155523528058605187974374242601366827168666943463291055847673405601816731099216276904547860620162021767598152808510010902178807043694299572562541433746292118494919953814072556884754601955029888552274441200914392607322231144211307835745031180037979563488966204860994882521341300375886144823311122739807268353580388670504678463478190279793141377892652135307046916813873077020916053481898717040908408751192461466629008281004822142517756422751533140483708653520512263049102567106843186337409917282897865978085020236438392919848878350079958818957838316897134999087784420699902108822812696509046045093877904319293959187531474471410479793428881267134502073581251377031599100026743201654860181596126194496512037925753867862287506488667169667571952920298874206890059966286693536939433904345210370451046630015452181177154799949655175427642725582356728733118015009319313112827612794921752104811877144764879510148443074666422040091702680653676848469243995611658679902286495412987820061688123668585801593274348532115394036147390131768523936519549136886817775341564451182699529627612730984449484690988152012854669628713860305433259502103974002453735552806771698991966871160067419913659686732729587711876047142716277524028469978680411022350671069859160147602707197069581055503313730549129942314801813651348864913991883869236132163471453892302556381150109179029164636179719539440350846808157568498550423016903944568577440987568258743805997237492778035890629415168251361928575386287184098223816762708384193218640335418500700023506205227453746383329674875008696100655275066236556367555195791060494278611537899323682216676899848280491528072872116873793586082718682287843540216429836433977383670818039372725252288744088701942880960313041861080167473484141846623723264025427130008144575282472605238929996096771526862697884327665050162367123086288527127329394441618375853637876874506911517564169389118849481073907606485034979646190018760770709256549065290400770790173837091942310189469464184951090045370001580379162641022542010229939034186757857615148579200162393701413443424886078395731973935963605817228750911808731310260947148031888033087176898085534558396437691426651110344872505408653118812429448826986160792329932436707872766671766731378844514088852970991591662749792437959807371425852245838755654005580453082197607664510928116894271510619258294061309651614964721136657356699324819469644415016468888206865859923556245156821442553011823484099593323366621347001318759953882661835858136350194183104179210816076354281830269711468289596955848634790532428926974021893700221215376898895284473497436164074716504361800293436473736411820599537251870039520921140062781919397793264469313608128175931905408917504457894877841226242915367120211885154702739518482888149833726217267298850147422790275078115788891095133317983514345180250411617383756342357074297596962410868091406849838659233176112883020483090477672318925817072894218229669970240839186983757770803624484886512879217740466448584841623361302901153273080851362960562934070885699812591193020204978985936339850445639381364506831645743960876500625722618878584088576262645418672432077063249789452085502395333703388483948407066945169545583445136600664399989882399440815055370775660020949136380656834092052041606225526316408341290145246200924757826636338181396412858815556854288457617009531885196073714296263793667026572984979664531811369064398852206755150430904094169398078177987958015730227976276510501771623593507939596382527317480996504031626396877189136704496851343299429516401343456537299340452297556207985186196882344840455279243939564500934017276092958656169572409087748847274346542748294997731382539107373725164042978803190255292269000815077782967116098592695862228154721880814877675870516794611942484153621344657956959279848900548542161061506906223522645569230612690633431237384459223861189251167313643323693930189723871453569880742179433005041881318024690607609309381069743661198897313287321284742572060169395191134690036351670342172738533851035586571932642555378381717178334396322768125228048779702042682212158915496975008689393340521858740433158823215224758320938117520924181374694891056138809683346815031992383379343257666144049059313628010355658058392900735639000133112176212971927262793985383734346412018611269650668240970226694810928378743281579608763463139344813338051706562447918020174102071659749674658028263367621163270764296689658457972439771409206711665601794298651281676034412504075541001888361451291812473265664293607282811464710289387244832177001232225200891915044743848999401280788894329886852865671253637339816008698595813950692069600989462725612839476852254086503799918895283176077379348787376517873109899534585309385649863839453528952279983662887544980706239836231852940074192235160847395212724351238788969818675393064317406218054161335420495246267321116798243092189948191531094301206091157410331097787685712774190041575706793120624361756987386120005647523152928279688973364795028895636170540425255546351347519021738112598492605181290996618756308630729131862450513392447202165623116031975207218129936430586338714634672141784747818388843351322422252311002314489647154632779948872436011734577755117165519299794823301709505228939849603045958568251959939445794210162268384877928820952669146625709718925799289999953872428664419541592394199625854240359615336316458332365760081943359731396446337361766178391815624608152780340632129731707420731487404067726595188353182191091160253666686963568413410603737855308781332887548994125796403379710665501362601452554854022138823329355498055835300684749020114953617552856597927528347704849483618667395693081839624725542990501665454600237883571946744080504184882564697779597534507887251703482465653510271518540767971971561815802119632265113125819619935362303134060643458232676550320486413103234522487996040981718157874312361675466855520530103730499702196009879536388886152694196931411801250198564809913257683764361560883626572048860012906230785706201379547261081053714410809280764578632916569631237720936126046612807735084751946183578943583110334901190480733020589845966482177094523323919945080187566614497371249469146529107610845916657490496228364495701849447890830417249406867374772988281170667214820642810748018097844340623722584428670300020718505167925300408074250965381342144427522863815675334595626480274826808411675120175484715122350176848969324242695640046308025168179660337241126298095662211187133170450731380707217286714144395654624584997484512315474259870423012260989054414611599770535375839150729360502174310418151665498731409376779441406522636804765324325309960646984159787640478504153014719899552603463120318930081179544449516479876164043649679226003044675991852826264423940424337147728268923845684022924990528385758366060851327902298559471037695081630207893656517373554823765402611839613954040233686643805673637875032163663022637697247177575625465012863043133451965527278575539707071672137302025067108244035549128904464525080675916045350906663295163114924613187340896713010931500656787707293124126881172959017480468610650737994165117750099786823512600086257155362463301448788854364772651850099531645668371066519268175452582230332854677713094151334485955921053498875012621223811275179210941191848523876516748388722712473173127634183280726843463208277834028717098029873842163742522425292288242774482174947808211408505414440821269784375960906624484249172230261212005562387961951683820156634817251989301095178903904313456207317857166213097748094143391042961678763425800969297864932602124509454988127354717197685752071766726362722882208439147462304826744267010404880583756309033577834311801972147640439208851829775173856050251475609854358240568721424544605930000349389393358245025017709341612563313752516323438236001246205610492152446200697209714492482342422923148623943481726521603033757061665740006773856287193303353207871716176628122091828017679891401331528065832856593749902724715645776736956302840698232695250454801773283739469483719675615598192299119812433298625526828257754917757808477514052086489705674511347646903177946487642012401927654351834949853381894760770695483798104881992203402073046119169530543689538893118396772854319667488783060951278547503648863457202728686613257161135014177389111173576357779786082936712364885166231856903224976166464201841891982907871262218105889553021243204414260075390434307109428391239649526007161526198287304439586624780626966614640190437344003553217441971577254719085182168300209724828915863733165200237437195681838623065443728003116145770444998803521395799878730450698248710875082881327381546353548530906272084548936738393234726622746586618163621614162989642100039342714532945640652743766127826699838572748939059901484300769460340004195811152626724050385095491408060175065743646367967177944498153542730919433326963486735673870309286039002894337047834854024208965625251210941464715428293683491240407336225302835553540006435911341570578008496069815597730156174667941459438651467076545419942949104449009951290223975438529481153981821920244780076495029407889887592850320086066729118836626934284380369371944332821567519594096021422228236233824981441234371713960410195530472397950375792149431477730141087154153819704032061954032342722283086117372908550024703118680006620357623895953303541567416959804667596734355260254446729057188008668018412219288930296136079493997624932872195191806875420696802973716850703144423790047809899530732922686717143393620064705016033334817525897771581888191055995391087015798204347309903092090033018315332245765629452765479358241526064992788960613352017297511787486687817256348580361910323759650474174221434170148669432213562380175601535311241635172955224600283973358666605419907160243596694052889245779498871105001337826560982098982329846703787699711440511035884267136134622766776810807849977206163583204504984432071016573294423730348116358418604834060972523891935070092943219623465536692859790785145274837518413418830433642892785165145596662648151141774222188028110098045744469459033063109495439949557047023012993551002433604947844422667237601068409989352099002370196418933863322281756571705894432578011188257997673886196680880944477863284832532280720470461314941443417958874165247654930751960704562379134937818697681749679720313095095416378520132233641024630242840257013202198184654289244998058864841759899629906394112941337252995138990293084261188031888303124386904539663652931642644365634221150289577917939009007965797593763251245898459511594931914215318982474688491894696732502718136092988405495094510120734126075537107024229941389326915083923001998375968792851353580563355459145438832432626033785882386982210368272748934859936883263492167103232220412030291906591828166913437912796479680700639125391461728321493732644807388864583193638663317744915388003194796891484502055814133585714552314371275938535516879337852270320042313302190105485706533038855122956870599822016217390242216434676256575401243790785637618977219824317078316010601204645549515825823260913374114044575609620227236830229469694174781099035204264445193942729862630887298749928668001309188290082287207853622472302909758339855829500295813606695608746534209934551084814308806751107694379721379556368987606990144967950001075066698089779653802133004413498247948202804964283704753474831540954612891843772591335043643293968565484431972885563689121678475588867991922230406483771800720686881910902122869731914259870731219421388678862228286910090907820312637012317759781125104082055893984414348142635596921629395272231673090475379993948855716064859791550805453862249610738766982691283367669834680691242446074606972195319865182199408426233313550276067272585687269638154527938568224102971388466782904070778178013506909667991281788288738162093271585169873499610987083285567700131080770685185888825460169186854991893527048358839197118377870612334022971815730327850345566994846615204222311392993420905629318700655891550442810129746144394751530241783080628690997350619919239165081085875403086951654728752683692787348209083017456099462877637994443307933017678339747374188719703599844338990295136039121848041172066774363813660778726948352371245502901463302087088853780013716112988992462822074542376712120719125718838549862913440759977467706598308750664761026916439495524386398365977430520085776949658206095516769252510652781907269048955807894309335406789198576211713523193697839671348158660536039212880210242230447044244041172667611787078133555519286885701148726318003850951878216726271481633809462752957520698001028727148170614719903017084475565439571707509600144250175078811827931999586958992121654800054483420326991485237840931327352839165668145306005161199977826285880905133403959745566378509320815036547572786862777623368701657649107672280954759676979709685043822757964462828618159374417147141791349318396101826867941299078043637433852672728535807520135312676391008580419530133737658548287522803219834828869046328515949627018149174919916979129823501381386575088363368890299958654823631221559930714129062405673052965424512097098233833593022882947887805928944569377706540096132163370449562647094998733685030076019953375704678973604460763448375152342124346762167127303564155483025211877962502829054722609661758350578282957595287775596685170577293680486634834823797656384678123052227290761819709597156865154491751450047259843025408900511412326805052767332356084898198663663638764892886934673052044271421722449515552297987395727706572732714345080664205879654391202529157509956255054504254836904714299193001518742035055090566184907671877634122169988411772949461865573727347368269658438957372407716380945133729940143017964204818481216698114317000907750847502162511952269473997962187930664147643875312957965933745365077340276533815009284577626626849503357184839488647808052112517094344073336058301118390089256352476744906958174726148283835949606394260457782160219842458862635214503945917453661183273589909178547317896238609226020336496927921623745586689773355650922023393794405967071438723785744228463382269695019621642904574364849715269561570212385999788323287895157873346019672680231510232993512436225278153507417023617371602885486467279407365483549999073273856481399008412068972261781135904882821268104354142037003191940103255564359071943359116576023529471628252950207469344002252599517526996776109904626010161469649676589211063246114983348707194126826570615420266548868140652373143227765910787886471763209557142701162361304317264869629990257231495260513910220713230635790147832717349031764658652420448095960783010523860364746125557154414232267471636068784994546115366327410205469483799311258713619162588428000755184581555118193887581070076756548392535601041545763454031653727796807800986197754773660231402157321150911595994217570758928601258101374658626995553453228136267396827442274346993317407017992450666731411695006989399120528968730992863541100615060288884659371188701525688074435334859655877122489306382268234906633411864509904756104298784297676048264940216978835739250758206857082122446341634842106305507321350907277840337706167089383428072935138842596450451188902459891494501742082502863414586633285613160298902666654955572944670592449266747964674710011386877467709105734373209099689295680397833917172086767654565454252638903851378168704446845292402286728437986029512177744515688986851364112327184944256277665909159833781236681817883814374284592004898794396705632730894673815979573046928500116956022751768679552661461898637615768392234050671683502254486008238021739220469071834938592364712838896390501262395784948496933038306805993730085833623041529481801928693613426635513399152017077814575375087709289345476650046131056233674743490893024402535490581195634543016245457659958339173827384980727312118032003940258614712227597374643400249066311235006698553543948775744500978794181482278876214677567696089800819574738100787166543846104025314993584759042419696613889727401773778091971948400161573611461291924221402304470311976505538703003291425222337161293703058162390487422182532642845532725965270923181147076802185237159597300891925029325540968252237619673655440697879294064174078331856741606436594257551278096070870525881638928413005349007542664642449216837352182761772960435265178045405741153598057554118915608690097095386177714735023005719664401346420896162179106357238108159444826160234530307517493129569827810969664174983877971630083428463417516009846353609115444410644049996385567407860554999868040767935677862227182535781674064662395055917667882431941081289060096833911231456272191385197638737869998321697781830625798457474297855813280968597993151323606335161004940560117575135529321409251008248871982395537336016458399506734891863876477811653676890786402579616673560014960766973210658689626056688573385402835308821475066684580873006919823032268947790754138906629494482768549215539233458305354681035809014440639948850074901701706284670947244393270443785853374239134301965152268474907640351992403642478865129540631453100492288428654545641851942195879880316278776073013419911287253524921026569860200421659288086029150488139985535172442201338556418092927871981155270996979856957641954845085630956724623519255223839266162162433769030294967996487902800997720451976921610093085121546089776630444108909562974295477035353225263096776920435230982866287680330257583316978064270637075110317281574712140177709232169473325795202249139124178064313418327103874161369663943334334756670748681242301770765330602670950931016847544500684539160024460706737658359380323081321713976808489871595029013299030752886031737165744222062938354403130784782970385216456639631596587905365642096191093947269484121673540303568675150636575141696650642249720697267633832852532584969361922001236057896273000896587880374785099385724255865828348013571215913256205184901878211421695308427251162225213495414749045909027199749645900237012805478141834244381361930602504135431883193983850908295784998461328428224924629328326920608298326166440717696521749680739408769484502294452623542333137018801797610854357540702143805329238933292154248378609448795334331930720480519001142436342983228235592924560772192516752846884046525395667556189005918329126254266845998864893544422255896293660559799846690946119171555827816596472414148309686822347909903530412389120554910503241581546557515100423457446046281110016952832319572980531682926468022300831153285816720365363633880598676804257535344896982600885059735355285449484618570906373067067718745141748110886278949418594685287520639975662883221887654664986834938644204750775284973945566186218673585101357854208609472909081071557352200256703890974862397533063170054840177709603169462968350915469581276234232139240324697527972613798283243686256052052810735950250827541278823747555123714162171971369424276872001888032526434344269543553271874839964868767651302224467838111163939992066377522753406237201633342888084370851647366937375693374520450793817051137765507403954044698509192882924070758092354695334258321366592867259575545352096625132819427535721460622444724420718171680446511153063597355103381013662417725930268330891480230923795614105308043933943533167007136577699818709021425184125917567668758364726885913598252161776521721128998038154263454485256537852384652525214533496049826047264387639514594051459484268920090283189376485935138847543235093325914413562972716793704316687279678072658655095326444074583997798447117134915936135255952604967831269709333110898895868881750182746706269775882124961360293325235455295900206518361176631281132687796447681680234218030188381761112728655285741870401377794078692551986835147891086236835997591022141500710235216220248584196606898654116897246649856345580113118249173948018759766090017850414568713218905253459939462948329570513222106568559250702007108717711282797125413821410759291247289199747577071800279124053390028655199009409839521513857080869955947693733938651442291458062839807018930573867480390447009297634730051740121724404585707276545921817750875682553242850311769128959720705473917284018748173395096616029413911261516286822196809167869560143114885764234210818525162762219666119678701686078670774691744918451133669998100653534525625297269091786545973634523840230701173720214903592105747104046870602680956843425152205068748543623714310614926170772985408459263395586561306937200675300452533374831366834152552860685944187001446663624943003574785550286536029534931450073085916411022752938628501889510538403898465437254699418079929854188956962537402289438820794306571765110276415511824484215701696631724482445971720408864225790944656526406042012935420525948722979161784545417517911880952695620814243532291451540176411091973454298364350512786709160871875776340125358479221933517174237019604582886340000944501991071801606947398308339614328166808301762039406867956945930965851518606483234413348642499965030028641537108794399598451553499860543565480685730372686067251832008849911183536481989410566149043877367618101228297891870252016386187341043619445071942509805068066870989940486236382456278916713344908452285790938599230759871209953800157826398271495640747706989630310328739161583107301364563006001177870764031154327388087138469534446927623840921615164717889804802742962921479986412076736540637291967021300999997189255698235882478520270226875830816674244769461711178577086681572420337170088270796803982404283638860819485681793909207954071023012240363434252737340725660181423587178583227242623247445909609361745804026576008451883659274295747266352359882127426633896694866226101342311396345906978131144542194995174200587283896882201544331940971784123243771129656171131331541339963645147351569434532463448905874048211134324248766121769479382603704240183661231104070217828924577305323983690021392150457184320491674109416626473277006457598382609545124490392781854980510471354972370665384877412364129336026118426381324834948342524969791908905749547832383584527964371067470060060817710711638615824603633004253154186357460874266737173383541244467336064987558599083088940348213338080951260079765408327352363174806058346304654090445754734954533704306964820044028400388616309362345247818177895721421534210667433187335957002026516405279582693327747354736820213265673495679761891957601466747668858211266032053101785672733536198698143588768036733220513303189122833473073873147736067452197299676358061994982628911742622816727110713889447490482309781233359070425464797858547533425477068412073370625876013524023536499044457227738652421592781498290980629791006273427321713902292496700523938313825666945173120085546182976139497955367073982991923576252880481534194957650765281049703504322606273031154406808928286435888793041401750172521392843074794445215205306424503271570578364799093715668533307921821869048905890771598619065128922690855844560394247463332721840110493956958181851870569309307515620056257970045777425938665298127280902809243002746873700863740976562896136213204132015724790587967999553171878183421712176229807262231764929102324993684901183343286824235503097777134969520694397925495564534021802953203219162830928625110299850610269840231490383302883985853969144568982856185874866971258398204430697052341589675667059238826934783771462687717905648156410175497734062371226902341655662133054068705574108581612814577074641801180615544261823397332830151251008073440280187241088277230449464925331864130511659196908483730545203321150553848093303377606201158220097968846633408807835334392723915678513703366086037234485760047198356664048433594906954262100900728303845807134528019260187345174007567671700212065110146033716361500278681612519289431745763068780963468179166093407391109478332186314574329956793396368590438216342123153278450469252241485517524847796004051141573907377294166084529238022665472601492219239261273988375445394804189630037078616165887952889268189244280304930121260397639185912334981380866218299024034222318157256179883809079468334680957972111151144971479248124513522505838371906127673759777191158145431499020190627592982629073335698269271381300648156135830927867145003786540746362658534436724935866131443278428807255504753153757569158388444358095294788616252330972977582092058033164915364995104298437848992605329367212342253892904097401258698195368879252379208511293730572477531379428877808969820575203820940484960337288884166541627885761235456005098291190262044305973032375159495246407646559523346608954759612364339527328372288841744900389252545350920316525613833604317969718639440753851136327553484664860828615240734707292945013536386480252967436989388545737099437357402052967498798356403575500574028094344081265082038846864682893063277361735237550772383788606063508298929269256528010736499955465605947912053170249519832334673389513890605733697450235246035472784968381545318642347686197044280751644307279519341060727801904402940617992896441900803855370236689646078317523344292843513494291829577060438067068527968609435800227883947725863621321002658221863432514114627389121447649377586096796885121031999800045123501476439691411818446180613470615037287096324251706480218607143308129002846643867771484851991486902210158595393224046919987911432978985228249058363408762724085434082043967963331866548016568498929335510947022301693006193577600106656349870164504161550615807369905454986582743547604555548972683944998084541214443813797771151364886644994455367190562486549898483518788120531553271067232077905761903150715595012949000754551233664325897109859015610385210768250583681135984158478087821284397775326644364439478913911634493929866935931520602424356578539802766332160471542924759790886140384341767161599039813251503090660997153628380738064884024930799232900336241177557106635494330276369256383839053450455474610284670948097875907191556359195232353101369780276285483417511285409352520993862736021769899974170093073754544896308871385594095741125146981448837028599170428287170452677469460274691845393910783880920559682522596777798024082776109465245324432544379633224718793133301340318777333845993455742169942627730738635725981814928915272328590424310645320544185886208967845421880519181904430577643010423271538013309735578597659296844292788501898376616935889909909750680553366023648858925241674837950666535442533845229110189796899585029980863144236885931276975330998218465298295453055843826648012670938305538259251163472496942441760371796433905189660018758466298300913581298503474173376435582351849884974983548677324895602370518573542155419947660047017781280583485963265059611158160833871028223529417000748590153050165797121726916012168901063197881882710185898034492374588788131711044527992712530621141492475754876940100681120461178083760100192519007872041725420598622384338440063132028446076963665154799622465512310560096212462105587965529200590747051945594648709347774135382986048397451080899728074183866731465966867126303726241137473132518476599190127485287619861502890958631224083394037568317786609282560342803506023846667508182417581998838962859464627343043201498329737711029102488802728288736974093981814870934787385107617317402828444892013379133215308154689588075624879957054980993197456461063078084902426709142283522339074386059187694216024129745365714069063341607361480450183467493894643015748119939300848589802729348380940522680188768728568310664647635684918037026720612498703800169401489339224211134871696176219419017595889869807828341183469068803466349787346740183734459749510884988885906453314153627130246791480409896032534675557481549299840716114005237717978959696258965065210748977450570045595304914006839669715377261948201168428041933700109574577547770571014763063800283051632065245363261461962261345716207969775817505414632166229436348308482519080973138369229657807390212181467252976188351153885044229132875350023159357379221452962148166697265380772994425398802841577937077368608677426369093551387028946915713236516564240096276154650242266136122133406200184444533445227601139479958117584268271921589170273080370270577904796980261181716034311968265532799307937881173820592014744150051851526032036174349212484259645732354201949832035821245328048828506913946873594859917599461836835930306643253672830190067398403639510649582060088971020629607513870368130764014033208146732323103507952557408540704964035127888235206402205725361227483382620282211131324692078412661870460930655348603083141417323511048141414632566065138730529023490107586747346191419856427030894955544998273942899149501389625442785421020984991164856787148455407900105302195512244150210933318214037505626248643639862820684837977127835685365179250638104252100286430652848360576026114423927504638453968937658814973933819108354531190293495440533314794809765854844102219169156663908047371149685451412147235515172403628275893681313934072565278450317954592828908732889583536931655051050573528681914484129535776704437977322131941021808266900526342929479154396406780195834982606703804234695323952606502348986578112359763673783059385294161162620117800278889034813431607891374485879060607670985140950525732248916465391180638072846362673797178863647044875703006375851217743962554318269699129276060057770761060568581727659857394371443135217739048982946117293581818712206429021577077725616784546904931852855130582977536450415923635561864994083602520269839612600247767834290952438312769828801683194759916362603181033366521492996113040321792873807090546328075416693761589874458323506351830495555686445741965568916275755648950954805138756225544619595574470981184225173410776230602416475874708755669385918362159320615427547574130943430700824011597850036607185209647215245719095867971311010510713505254109296877540171900361528314603365767007580695496113211629176129516203571956548113319051480136769917992508816863260464215262657164863821302348735343693786407271120379735880272288004219289457939487764252000275729647478672888506231030487761786654735358209425766467679727279983238452867966366439026811936847532282264344994941903586404482089554830297940848064463747702061714970985222467111722014005141705915350172562962117332523982393416056325654211252499352101733844249583114255433532849612107789620803643201509507926368327461251938778535060906756918490011205836106204040420737985466948489342619312456328633337895550719592371102689143484777642672776594486569328102191775383264607990852936716109895191891718713105604378325681025384186991116749654229314547433630163505441215924504273295099953928911119839501949809684258239796581331957907794095251214611372690279737676035164476618201344605814424384266024064974336131106298214625759022277743208543028188895454852600712120715976924271986907644917322236446185718754285883485104287167268306323963858654964708230573716712989528288846472529936506783746841480436714315211611179649458934782488551071693250152477530779730371544551904895798972209832963004150353939937278518426096096975540475209808858023350569957768625934753441007031902624815677775960790776030255527370119970080408219798357089167601273856873981750657576572274201797221178234512867196145610826171234430025274083704300805251346635009259068031451763075475384302482125003005337761407679374485357061809900882502638201416638144580774348226662145725802799062559962133203865945450287976345801236130112963568457116557043775041197447806491359521652937852486207755305399523239559695202825839989309940775340149837736374494357821394458379842144932731690562540506331535163941340126669627136242362762104756992181478312011123879078683707321497804477788002783944832371078321684199491715787925767755596585758036704677996981325075298336052205320669167461486569286222484890025120217215206298758411558970747373769181202826328525120683866726228748711533795238229951077323787105747158290991692329507777270979395812029182453734044603393755015807195261514355279562813962798968379774550930550381622241644193098879002164635754056404592542551085184093609494983190662125571897460173103228002022545044125895076126383285239744725757649146204187230771506551817492894396543545746379739599983520537223282456437165799672698200540827911566629479571867718666135977821524672053742162071484027394618300744111030110123583861739479744672021227607444638647312509211502301748134774727350755167608794583943384466410902335896870132699064806597925118441006184302293968187052837903271073200562330796275434083068596272821656856410497049897231539872615810413262368389002659700758561278029043984429758829666431728185338799531474635268560241092315138663124496808947170055787493933827962329616008499878054062564976885876464979931269137420956843402457095192690006918923304314233786498106914749774583276738079409179065986090571648972202327946284860392741950235474972058867775424199065475261511292064157697904257265124300508644294318262878651204144609156830415591976264055905980918087409206252988619101540907709932808375941738229641904774635945808221327074482003750422025755207098847435542023662292818219423518750638361398781393189546752054003358899215140026022838174317099625421614913806550003216175767084919567835841181599438392659600770949005725808159251359453717146469063398958795694727917400531488311268413404144503565828013499917957958371229115263190510613138181119529452171444410558052355794007191464687847707566561054941115527353191881733257610166513109157619070972281333922279588988099243427831891945622863236266329484925896643763899225750649891692094462981813341546117530346623309241906055894581606152063478061423983702260857372051041424127206810731349379464649807713518690266505333882763865493986132226343696502097665201556687496019871677908799832892674021272298817771758102465508510641964714480559144064620825300776598735250906658003440232602885872194590812634153165999184311601235600247043799046276768123741117990849735489423746342602688301362795264823769023242628971680503058711223800855168089405851073262522460320712862595589377369088637854901828507018753048511808617501634661955364845300632542834306057137175597393743818505669466374895729046230687760909476415241566092151600540977078816694013243234218574450950815595089674028328653191459266961889875884435118970561241786519758393962877418783769327547451191692723913037802048167806145441993828910799825840786258386635277651163905014296804604486404978986016775070516454583000515974837890146695996528334160510811617892669710205291686161621830116792979113566564621664496230342367691695390398145604052576224322217699036715601820663695300452103029450277915414202773543974109156574962240747764646198896501968734967251142471412890111637129762473904142657297567051419527131971755022903814135821503318655618905238400769407562309653448903344005194749574989964008568766135417468151900342153712412082343892194816191836567197883857456463421179650549890903672447308431895257431367706640413249829907302375780953561144757121767112096435053111531197818778934471532121328276392710876964364930641450006329940621949263916313162554265271794076915703389091163194950261440402891607970885340385564004068736288878896874876794073129819906157751792760600633938973968135695170203112154206892423112439927298065923340185535202313080298338524258508883755848527123775591111243084943616044756130747718065914345226189501623262927453560164056720955399019798199738750769887282691359132651954062261113901814860243731567598195872889927703421677880093434398922116512280153663955353318243061364564945195930798372683030244698375469591227896869138367605164634347806583009593460494467299230523368359158660493539894834956247201563431519588667441894715689775901403139366356869370706169406298796212617679043954106547176975545545901961147711970952266542875177730760317319393955532357711627192618934487443234100435984465797535522432965566483580643256623527946755096461775168893659817838017649336810510172771276411134799493831722323508268827135716016302760383566263830761473481265677383163178129534805890118734869709143438549095447851481907041272808492139250933389890916669476919617117121577524804989555540671224779535580543337446923395946385357938796720800077769004107295879415769386226541217587936456607256190355117171179723040835979798835825114065659224101091533785106097656566469004317273325577192741724423368013217750520861016751065497054376872325641845852180063882039921872593791201762220488441292746101037500594614253424235408803647084290880963089060724902391641594209397107798731203937543175432185636887848795356699055773634921127282909973286673641439103110879451129252604936666537835341108288594868427197245657327454672317747704854174570698166550669811666803786056334901568443803773830016706438025179631558778677132188957363999339261316228909979094678767400544978728511190245201217426439326290754953130572161195642522918319927736371004107236481453632783625819688795728203727599948417140039706125943345096124136608570409083585019760164877230021314009646039718416978711349960633431434092555919070045520022114124149231099308516351190182159496017046336047612117741234790506921166767858424894573523640392941724123644104616146655201165276622097189253075245623621569340952280226301656595111133211988365696290855328904003656257557494467222608809431519428902687823401676538861390576778275457717666288772331518147157664256679230678481482839638744587829818493843268667686340473687640998354390797853823475626546352244945417724999684936786230883328589492365271114568985356499255976460652840447349965383770005921236386461649407236875706481621573358452019249359686983924150495605902504649814979084698699843533107630444892832458436749109085754414113751749550883015520359536647636046586891890945529055686435595800360549059396348752032255947498790312177246667411885792937971775249910968259540145537864508273756331481182898818565613203624652260189209098469419463342813186125451988351743480769055139004422429217860693595148780269205924279552348841458251041789334586212727562971992055529878472539450669256267283739193431558565129682134672353100612031588339760658028089373469012874004850753459391158052651445961619253384801917697863635454391478598559824519453008146287696138678113876953477486400596193641182541374421600663450100066176488525820241247432226619482026374977629293410879454068345299656084457439414429058433564325800423032036789118288800113200905265086646982605141222555979524687744110853639892344461871399268345554111552955118317853414797491811188787364643209794682253779475614307616860286846042383979708471243127999022732828477052635552641191843488815308380782862481635372348825975844876611472760309763446360272931622252031663318332116079101727098112632524721024087446579942630175491044072021323605747523523864404651978526558325760676251448981246227895374202857100900039915070417258830195441829889582196910199637252368525328126408475987465298681204669037325208275269296488990393108499052563362818904594244859500908309401649852124474887236571428170148305371961918324095186592512014691888441100061016515677327686857654794171212588689211923767630440935342057475710798405948185972544463958193396640829632995610989634240103500620943941712034496928987428705501484421189161489188962378561046582478224023943240604108100797557448419747522075438158871722215694879145638065171434221999268232686539547797380173161810267965879343003422724922354316612499243570257492980018086673916772571465280963434262186790261839525478107914052363500082382783961399096924127366829229401929621697918970191794885965043626017465802421469905863530331677532783539610085137835753273579480532655021589433803397793062425351885228199483897930369661891394320968913997324554770697143348582950366338888471196053736182414299087249797806569237675534600371919765927107551508201667204350812273544541638038096909133240625745150020108545950520556766694321418402326022195197853252613874150298863079277440721191460838122297586568183445767060410895212578662196572480211707258831357263463439502213720903288247618714509801193677572903664587920672441143433682937250415332079649895029328536820188435029360132145527558582112554538584409651368541849759832949335193371359955327901806174670279032635230197190029671614224130325323778624818730076073933477068728933166153254742407684297757558938446278987915669828409341168454822987650958335797122749525931076498292368354620531940738720340275341996831399748523418638871984610315032605576043721645143738380910591478987191359775065988168966170963917582738698895860934356309687441333611013147256248645284788748966673728418942297823760777173574911482030222991134625679750565358627891873936198177655870287591434221760668545579782028041419294820634112015187118260657135651980306211069990019379640628559280340644186030448725426014082563272521745712230672839654875518480007179588970809111947819943355382746697786788107374466968421397252629667754002429596271315684660048432666783367984485703895220538782583266532432317392436841427979216563917743261706461512900678733828426902708113690114463814365251808545375017928072146022051781236581646593565766799753526909205352966759227328045997665049015025199919521699506083007350664973523215192468979884386434965193218529360823891827132146239042739380975030814905191713592478899885506063946451488173500970968480779713054331524969130032050522015861316896730542243529527599118614368140972246006941206234146960143047475989415340794170062927821058100331108886222328481423858293740582844670247336956803132089031185297968327578712264507667353745890939182964099321003167418521218341771501404614469633838827297053917242990725822347303596475031846242526966626522577914020025690917104005521031806458433466024011027268500124177246983424539763482686205062100796770918748653826889337848215767199509308285980807488254174575045338518034234043213496536511892134015841619461343474704833649680457503808542499333038328642911959076637087347466826887516195799190462299146875126767266428087881471754343240018986885860063464395363563633167431643623941126228132088646524208881192222842654391097717720437610773920349909245599596997167642566941708321178651592992721940380723593519514852326695607698343775745685617809117961997494682877063634854753882739230813909983563750980360658555394384417263904815771914021542533325662062049455181410882582867752011773754311600826100845437139741476754478507398867290445401197673788981234652921812128409113039740630699032516369212091908740291211109215819673842002414643675291812691990123244831976801867856647136835960098298181222821667309597016497783145755770504522477306265121129277985815207140681705792172544203647123356656963936382191327268643202053603196226448882458920211947084771518717062547059986571719963499361054783544621745324568833912228994210801362324415524793540449007517580877911553520831229449698040455849351683831590362694497517940321914877654266953672837079614389337385471472305409029148156160253453622170533243609962383046269346190763029422444303652226849360781022819769183597446010414919289806256855279154401588596438020441461204395582095939883607159609684677996993742231278090374575286442532282114430278476193002328488831095931530920744700397168604004481330923412562898781302401383248862891823810041433558364252997803797205251721523352487454172256299353042177810760297271520531028513257613135581759355423826767203324920573190338865888684399031159683155133541419421184463787340472867651133806560609266658984575534641336845807704938661233938034820675606294933045891403873177963437072880341231901381583745457223993483894879440077256838176694352432291419668007637729010138295942863857423914882939456330807150957419572937499212872630503412030489677973448847208745675536265762972369914752758714926209936684764988244068362447226519018142893195855517470560046710216919159328068262930240371894000597276832529625875123923269748584449641927090281643804078592984746678888713584574804694850879741011947851692328923423784538770147565353430669171387682835769378049945845888835308644924563370756278526732164637363540129862878578454866000503520332909513794470663132621462270572888755346269266765966372934077989797398499702765682776150201806766835759930265421737496180532010362900547769110061560652658132584415937210660484821183796314101686896225633024980181949592640421781521560196057184479063920532562284009206810403607051609425015964745443023554859233434946402877503218469627937119544554249562590040791629621080399003360535285284638881897951441206119486291513455385715693147577559204430051055141621361634734449835354595397882466134619661465557906785429513576370358048190008287791257813733832331966873500819490940680504100810811411467739812216238170340303638903344012623463703374221227449956098310909842481873877164492633513443732868576220031290245701007088579764689659604517923379362574794939703808849624532257518458341736593185732648545559042510508922256846958541682404263887739982789340872437474722564963945003879804685117094892133151916816138375719730244669933793330248380921183240879674964878914770282145373570285991197327284934930738482468843729106331097127681111671135984961049588605061706980658557632284240816164015603748554477794067535565104472378428938561698444634729781274113995982032347822402621566072598767937947226045230562648698149759140059476086798712254714649285697410581527168962581198173615904627892279055087849551847583816432838511166254996370325297635710321269495802938999855116469693192734455789819909750452933518112260660387158054965116099892498906157141005716902666955943425073117980363910327964962328418109530441470728326263374032352938478488867777670225837472820851793369992912778880128929300658024372747570159008763818753085826960573144271174209337202347942156224955513984369243607447776581073329049461610700273868517527464857820247371656482968863468150133191189429234806274275892734252075318749431953814528650726307329955346865399092939336723956410171775221106582216590240550622273120858721338498132530227571972351472106813061170236310806700149036989326116206457575346053321954372522007125525612732580014763492365034435609520550759081037060889788641218294546103415033808821201488266899891931361362963819055174584109607949347106231030991174770932924265918789946083654403750656372307579209523106591025830033426871818119983821387561764102452345369248470045582634515267309192680020756916402168469115688812140625112008054737783686716089173200065103591862459023078771524194403718153980884194722650345391866045527525236867154953159038564041358345364903013774896559583858030707942691878437778989904359866677476421765055853977974311386326682557332050262882639878825649932711499060877466393643544584459961507699648387530839196842150582616568950052909590009227930136495347880196684521244628273970015334570378738446619734687072184623590455262409520644803085968976939990942252564311126493389136963540681287842998230830715597648580376366015121773843893061801420940031243974741905554783695037094005081794837667773923621716707969397576154293066187213803978122082229924996995652553060334462449500128703723547655217753494389767061485330374015407530772723476424857766225889119828213232980953772204467560297484703148672315818093920744955391718520643258691538294319500497516430665857485638477448432086806004986883928491871392970067426921015511109624561261623998667750343005682052069169094998374510925367536702437207581428451605144816052102105034308699782337388884968761295061807576483205472977016635586323947804720232063481730404801773793775921006992908413887821970605900945132245830858773907739524041652446902825804336337116425234397748717054241735568826657100731657109454729609109706264042132180419990914161845821362344367152157059278205146561687249771729724706815770834374424469012703004900517597044495529583636919671537880893921340360011163704980407716971135109567570336031368627267617381078954850201238866842684606306031575270330601180322742220061097599368270862209619643755082221520026593145694812618399764494764871669692462249944961620795809160545040236781270070416582152904841089524565790386094252171647882381843572168064838221141535469170461880888730822800060878085882132416299586832956480442416665059025604356417137922910518021726169732591767826977814436629017456072456661351191871352341259046197813715530658986291156521153199932925901922618707647110285182334953545709018084673192691988549180785724879936894796672629683646562297371274495501252730709202754518896857967662570258931944729547768642013254937116989821776921346736209975501936994820570103126512782871521093298279455679784298877045106408959406164894903366615548728378871793111109827755890805047603101332370279825471307277661205836410544612538499946945349143338217736534378788314267720558819146604570007168413059948689205715183183785540729626249981887305339132244166983073410561021666385547921782080476195030750593824207262574590352149601913962456189139681039507124590046857150107399487150412680528828749086905087583079314515801960902922613256005880027106617220809300921541545732397662717406318239199879615020872341447634291959564873235448471663832909862310079833508095126299231889943715043581067893909979094770615670098515186693497901037901576676353359166181660388542180768111885639222057156221608423840353356455866016695535075785196500840695426691628434404681414776045107762861115822278022144486196811762961666868027193418191858377737229215760287337807117286100327309671704250579905211182252613557040644215228740952401676977744724392934595697687778266789839102179460885560145945498386127703460472923452629714063789399197654342824821594434829756678205435202910534304579721027831067255606784644752229841177285403701118717988763108286190459068054358434156274521726302637290178465588830395952207052851738294346555870425481575103939190451588800665051875886836936167476216647663200861760281114422896427797976728754895131181506936073706580381231534174113388617571389855562572238603898401924345070666314336666528384114829220178921587889662347589301103493033032861989922013034165851494293404069040070431165352698223316300800209929078026574066076264277088131856104243659253105111424612221980820213169995834564716809896224606977971167289215626744521047811517899137504675945247930696674034744013395778962701068773042186897357846788654601479855645902703000121368097042362026188598939319570665258637457751704853422972683335751146704752938917804571695397173389725863775932286917434225115336299198416990126147305574632620675296848290398979376324539065680428332935421634531616020627734261534821667481510382615856669682158707746669305387231460533310824285487503071334909156649435356658140491545784348123607466037667500932966453019374422549416973031616961498499561479375984068962346193818824600037901160421351636368101194258695000913449598822942534059279874270660641825144614751639437621311913581666136258421800157421603927195201610397063850371494249967420676652769458261850554948640974496129142974161319054744342367574915181838217333395336682366663920317691766106300367912088445085718037260049358998037171427988975245015582367889799247260202146533818917579790252262639183625181204833185733353208549517936592167237141328744757341625323434778980596537900736493548604447216556273809222291870480157744161572517934017957170993087509148441621705835482384355578966160668575733790057874861006599501773952583761184906201150473667738761838403460228873305045943459047797716026939019987744521342723231119221775484252039243711189012009264116595405844690889602223665101829609892973492157280672240822378049714418540396574693036717062877057286212019760209590874106977733469333432871634193303616619733167267606491373670255118446888608219403386953918526880968163602131769399193051214730059990395697884925059612042901821732155499593826916964383989605744069913221309519920674917362471351830185506446520074313802335027665575737712108237124218179579476789318895982366149223718082681179317332976368537648374148092784708482862052240072876588544043687374215465878913555269955833467535965030306838750103807032289867953705788633844613344941271222342705825345321687288031093436487710237535451558064237399148747038657818010686690319153596021863476826377939191139499841293106522671149567336198644999679772274446972858265092022697284108019136904755884678122653424098016109850125562585544235642573070658314608430368927868604392890073599529592967366271783539645949535559340809304124431253589216473955932598098893364173689909862332946901355794182075903974978416518300324821265154650328411469902699210652953014860993080365905425453764832901298071714503249517879257973206124752347479403551134066032388457579403690588572580145448155223108663781669828206351356203751676277270707319223138583446771304370269211733620141898187458349253276952997091442976287584410722543418195919705042814685935556313937131144291171701349589351554717851375936505426260711442484766684787071331867362314370497823071406045616205350613532194421013906285746817298442294846910340990125362154920189060362764539822682743598869679921828149850784314094520789619438685350848343968646618810732961001870934193607588513729613338588180318540359584313538942609806815266590253611320396699165707453049411980470674337795334356422070811883867897916808005418154383656174542330167459576787373965346246815887958739553772748258493661565143338245392243097310821784193729258089658824161179757619553541347042772359089180306684886093111323775915264762682936647336501372425250360763815042445998227869829816898201782387971947310508669040457383933966025733329012398891082569920015784369822063335904595105679918732637782028859396156023315012967097160475441616872446742343744380945102631964030209978261761772588381199394412981526491823155206883767927705128815942029436969022160812967801267253861291316452653262159923872547909019757152739072048384815888628605932162619272618941588108001638453188362492278637667504901932702442215302991279119905830731977605780636934791868898697167426123328511192149568724572168288353088183994004060610751278781612436692902247214480330065776828748909510970653197923204107495931133070919089432076655706794083361825810081065912734180834669713300888917879085312483500066916139581823941980466449980611647265359285139128302021802368541515163138109725313033448467607009391708782077253516233628641839288555869417440674110329700771755943449237389530202137584584801376027520606237107165999946030914917994774429793930681399077865260901695887886285838939677271006655927019523877682992108869070157585195981222705437982592501947638037453213368560173074721759735831025246915552148718577652608506241433094666419099305292684441725561095271251751180472448393093361416809458814287325612373710934901845373333869724828808262328386964258833325601938685061251246709724103397270158843616287689342715906442427970901359595944013346718926284602444555649368571851920412946681370978599254535295493789441581716153499085593988740694213071290732925223414738408924107095600416682832013259601965224025520435877101499600201919969039108762162586267158167769125140848377108947963665920395157484964868493098128463934461738914885444454185706868757007516097784145857205043491679280963405472659015303812351722621003546780340398293073099886749281992321787528092283818326154258405452749523302638052472690785256383038140647039093323068823063866855648137160745501138372019465244182730486090940330935798693024745947212682948789540999530611653484207953380296024950767085692894707714607959183209581564777165334696710789731685035471183996419245163327455607268049698022376102582378277206505235927620560642360316340908355617086469156719850057381261576421550715418537313146451004023052096065004689919535517105848974528431749458563611401345560284752534804040206662588416757389991980655615522544410096779761816320313895667621576279353395932817471760845585020498028370001726449964466939795218739146355063452749375297019167915226323566591735408004299939936307061521219247085905837304380294999151049431708527889304542108528661251882662580784607204568564645144791506481322559310913983106354443055836612445766651176567502078344471669220324234377337221948886416500047819230547056713644189785779157307934448100702880635746549187443745543223816337472670177699629405305444093975271368811813264454535375015732019207565509694636273446868807970877859532833616269401119221593734110289134309386141859565493164253057352353598510544673627011936048048115689893541082486419872631306095354221108687058574840364817541747928391227801079894755249585826856559142910312598206289371004662736168536589743692637936937182271417938387704947623068078437730788030738949854321641277237191924254438656736546016799262656568981737606936228343591027247388313573542092885675335316223741087943620036912221482521166489407566996220891209865818853102887221591125919094220184766796437945681058093517468166311092809018277260982111571178663709709812239567648052439239017184440538115386410195397281321133866755704317959740018119698997096300989250301393682183129507645375854151655314062606400157058212809570023803566302617780185222655052857050536373663149220538198187088314998701225486689028500558469227705774550408230670698479863639636655495463304801828961720962332189402297848326605979951769885817286573607645050448353098630359453184168821046214974822916833612348340778214136079449364232874801121022930118271685485265370386930123879038742764138628489490607073654103296243064624874196487720702891105547081234026064857884203531381585451272894962835540621085368935853781479317126256534763118995402818315262332796282614651816086993394620718377903158902913806237758956353459753090732856030528312035197600459845758890817530006097937327859447633753368191944848951090752437851273260071737872764189332948424264646031151234690715805146699052555127548378236348394513268079346081992466041526985803979652064552012587055728666298132502142493741765234686763937106371248304288023382846322024650946979242743049181165535221917283541487637693647488551768651762019427653819553972761132008174385869234875510434562061020435319010700405788870417049420572466097603219352557353178324680333169903270684020604286548247409261023937745302720969631873341619681842148853990949588128229171270090242380220776113651264859771337630458201559672282180884783254450805262145297554584473774885758339397352811243015515971223662506220981698691977444557235568410776076555111300909934736407955021035193061884869094689412921100545642178233795475341604866155968420788663957645760943292195540022684533966262042244165544288625264740461894875931029871592728899524303332006289510681526257373258617973567910815207414951572180002592218003368959520696012092502275422463985558927857503154251411929302738357149055223461718608068226138434222809659552594340753371880324498007713276486003410961139009862355809536685169602437083720658674793094723493437652520595200527550185667675799266909138847460116182992405637281719911486224965110088028958377278035319839512747949409113718915213313209667414492873115385185891227336735934882368670868634822318607591628783014086699763840470505634623539508343470033734960952623472642915946710350232745717544317826203890279060290984514816576695666765351896954008529833960861115092042931557745099924920918456925964863704452928715089309373862856133155599238842878768169805020602352356794437094073898019784746670239162792163750159058497652748509050553586201316853595942801641419047973278438187691997344591824060820470690442496581422190920929326371566027655288013153118397592989392616704530168720125119896006941440811455820696206295563049904514073712217244563562480428534021115031068147776111959575168902666488570239258505771006976286376097918520210880089005197230130384301665207412959114347200961526616607358425257273764824352001054657155792559689258197905535417742694461905464333361539979258111162808135777504000518082408439227566333228451714436415376431411863271631932436753989884824491577939881849497540591783245854198909951470432659975935006352429207633819469501547707335649740586303576453153047512064254035562970410483457783296014997392461436510874219724342289650549659036341192543575800616952751196998797828407087651814570089082836372909442041108756485202529219497751806640421712325518498746184677203728914570956034774686680282090435548353029291292050138337937250223694167590241125556887505984662208801561477140196354591366982308240822520281653849565050345151913297068081802000827348818584538978954558665998561246678290202201870067876534960239645593175569272396211635329435249504361197801585107131006649123956502075998880200547881435989514985708082008628607601905406096129128247032646366078887672608250893887306840821370987021468437721438210304615006291222884939261439878009109802217102125630372449030465479786077601603008826202963194226928348421208761069094925700888565664493388465040850591928710425908728370534587820117326870473676387643960565056333598352677388451227164940931274751163544829243750435393446850717021148747630433145284016126905890856927808438840552193207731549811215111006793457781129433474409158784623296154169601098475701755659013346757038857430478531811770864348323244660364629401751149426813141614232521384988271442560178954512127545616457407954527136320380490149242932473105604075222949332898838816547143845165709841565332882011390411955945920482359544789984798719904776978650562369362272992634209358228114192191040271565554184044567377251090992458704355788379683900401950293938841911784545450878117799929752553168961959615412908717311637132686821277994605617367306381774901752822624711721023668001193368997695921150638579147330266690325548746493847084389594375504225912790286402342911155125418024382425930327192274817908109461555714809548997647280458505211426628851766730431323452611864263441818867601661731644477345027454920440587329974568450477260653622913646418119721405969887145436979260707524888003693129729821913399001313730447125353545817501031906386530933192306755027695985109772704990359088867560884271484792722046946659023021135318867724551988578526208914318612113124960317854633393115500806632377579470200989989624660510872879245864629273350484026900969171944797048364389581136085440290602115903686886932488301542652988812680483217616918062684776381161643653781632723479094827644929609775303294778262365990837508016168138547650989845749590580499390406881122931241249105967294316707480550413156276315243823996761280985100583494378696778892281536848932182459851754670323679675721642133878549615186626030064371637566177879889208431206558872446978559262718993623250106251539456835951856376088669623054041190278988163265261625187989338689246556472243951668629161936948664730566713936357003223084296557720733278643863881452825591868999541374468158987560114085649027298476633867336730124374543617284900897733394929215795653233975839393387193545562594713826837240546337797316724337620057059989965811196669184401421360541880882168567407335451186602450273825696908129892141976344400396297519038953417347215026472433538657500594568465847746731359262694477846957885493933351783940567406488747546107855260534943965164341428044104304641943495743344423803408363473892740518027396357952629371345739013699101037783280639949437984412979372928179075590725595843955832654615985176708598654707998309833706759529123022569523197962801279405372107114482279148814248288837934658405132264767726146286228741658368703931521367892254735164633532098053684715579119713059412279828615508367848792066132337652832361206071824869250220445034652860506361510476702619914402853862012296722931299220830631596699468840292052870862486721284233858830991341863436823696797097305012891767788604842036480126198747654507001487609546652972405626436183647301240809346274512254065263165440805885375636916695845133732695416270751919001941034610229062863047625981079088282965261686539790252618086951835149672566603463988301003606507162633466906157721668531339597610142298482548844566866927640732701435005913318334592000739435470756779266503569201628756859417082765101037512168986580047620090943263874056630023307331307778846307101619593268416525593680917508644961160086822375446336339679758482593903800030044040608519261932319994780889299235874333279015900490196766882398974779431885901619400219079295475818755797118851369601453976843061815357692466011579795313704971284954554733779790707714315819881666244764123164460150564658389302643037151199261104485322643797916987932961733672458352381062372404648624862603263029572759578571156929808913714147136134938373257880583871889067587816264899456515515625069374941625363180544077920153756593182085044260355972849157244576692196640713504416729412039730375357427614581739086673473464731704683116491029397164278925168554810383702375084961666578921811770864422900795616129178152476872254472141435326646617011802441310118816071709713695249217590776133222918829098747597922774340033491395594375496980392081174391315994324314327344558132746544851510743331535384363954278114787912580353565994896733282986215723394000636564166905941620421100838687619181860755112789473595002900388820545641684000692865473479426226306832170045189264109095451538619188829459361313182536298764478660616534859676817727352756970103734840396580287471342722911129333875191601944980669206416421971680475664393639171924205201883055092686402258935154735606505912849357117227765379743959740567229790044195026858620861560002607030861880672705095379641904847180851198953447379753282126613456161004473477374284676399255633241720107902128784097224945251888149355897745482034491180277919289119161621857655867300422194279238557791100055743077485604822141149621171334739650365783385987851255185142036178551018464272581042936123202311431809429685754374433013029932689245458060750964351209069726033761493488423676887780085357932345715296880125320754143759325632727559847671449830456085191813489883972461316124886076250239175659077338736133016342948045513182046385585443305944372414008928394975702941070874751070517123913695785100703531569840703444555510518434189469001919622009062407619729541511717670104987642715592741412222972757424310822553887406690443287853745365111115243399133018414398683014882460181354053505851908979602635492671323728831054365887155419461863986940634272677096323408261116027230091745914792388970435164755454938509844630067516908077502556809174985277790346574891283532521957010955493412056005028088748696688732614789248487037533462904423358141949361677325866508016388562093291792975810562507599181053256948016143440810111078430581073316607410653775216776915388644174234597480681801306415774189300699705646919337802084962793968848026928285221004123220977755616948645140776437372024780674938481487467913510455687989717893459039143506365116073026203679740504975232352221774737465050790070480939546934310169610005741210305887311723914625015586086476376090659885086489149691795931970503717490818114714486339015557709676467104884025920697185639681214085696861324206708936201769996514246383777416409030987351581395740581100958603536390166901651517386879856855263640362123855879633332490387081868413122682859442571615561587253571839469061537634074837961525088694140036934366304768741392391950077145637725532563138159928621336683353713524096893382002125062535684767350283114958261457697508001291739936574163864783136951373309963711649374189420079172422870095719274516474397013889052862831220834121340702445045363173894802152986570794395898122310318304232492358805641120289632352884746144860075893841877269837174700681255104042838653372365216762349833717289692061553070399871435185716634023820839426267636820962809372229098066939849081538279454656162555750491516133471575558588027825588830736020665170637993791929687859298427239422254193701986544727066400100710926514447492003975679186707346583967126642920138354797099223552527301840349695783265674392078512550185263049341868680324534577862791357868138487845613032576977906438355239217457591386300307779071453538673247695236681058312518213645185155035117499501821777600312864983720400456424495958295314324059375073383687020971760497668571498110510432405209835594874879770835855844445707931104304083118218175859532719915810370674712513517886924233230324236779040468827660165842365543469150176455975728157363349990543151001620999222249077882446745968762053830154591719366703519438315669776635676526122881479305423187294603773989441472524658467241150264704125145868047136237592037081934293555626340345881660569266468948266552505255568753539287618999688207315622793404964280732374791486798943785788684233590516088838932849378975468495418893452769241858536026053949725522840729356782526897642724265023882029454315738617739774856832426557644558637188945265771483857890356883493426895625742677757950523748866705136436943445921878360102588655206701336634023443682968855332587109151013812485570541882404109886513424528387063653983764015351053986029713780954919629798207642207499965494876313103106978095547575671184507737024260301450752982618238885218593027119218471915769149972588670055256498967816090145285505339525424088597200885075267795199727599149785706834482853144237081943218011193853849844762364890784883090828011728500250915816133537518846386183033522703849990414533334698378426382616406889944855098893286736619195507702647213182956291758990358429686301426377707989678109808765327205156836559474607298129059003711044132318482682474405398435620149535126571255409502539950834152018645240456146190522632496806935956173888001960666946387019951644144074302267687850086300993878644739725430656127941571145748972482610056171783643223242000007105665144407272943327525061599453639962626432440712428950541189918153579320839756103143720898661798983535696625206091823533860295850898707899428265763805935227076913928573011927364365784561406227141878203048279549093567178526063788341057489133813649039513022348341019274159888338471653143731891982620428489179238227994175882774941031586182208330163169897858269493679778704958006926591998412830190283545304905224273815863349155546073692256612966332996272375906059474649445693118814657410647008732029039479182403041867040439022839854506415472095719425263910449882530852242821779966147025601622401285165056456963436472990430875455527872873536990100707980713378149997507246007769661428581992908960434528176327648339697983553683149850239833040955587743769998901066334521374533312035390397200126843615446412718338855116207099203457591499368970364413441146020334860470707337660695443712425377572242683172049170724675970420700799827847360587492286665767307050330343173392880898219936438166290849825197770876748193079406366715073771399852499582734067012745336954990400864220913640087442601679971519046005072154977287188647893534437115323840971284767213832296748370075052202411557515942787253392735397741249999136583335688152043839936780507876005903195111274837086551094452443822531366591060614685483717809238653171014610642473668026350812439988142047313767996779028877108277949841723939778599604463266508872127654662161194474959125591473889146369523452559415078596741040801030132510802933157799122160268119137993302418595108399881352160945265459172993159918453330259168705944284011762825829250441576167807242011343801302503684782726653216784561621718500018606407785761277901368501171556283226734759366139670493894803004152261997982154967253969450637440632383865137189506356684393139709800443306816204550665198057699604255116559919674283295364838572157851877724914477485487605882109236590826630228631754783357888029672128746250831266065485836627214868336976918277847741101960733975185486274920303782019021641167392979669065660709624874849050629597258760151696345389783911716277780108456945940825527803899237731477336105259100956361530594445610301491953732337835586630791052374999129488440202856075790196068894304185905915748030849191361374709212769473703437208751793981234693888109687466230787060454097936316282252213156601877439667312767043331356519942223249719226781784846068772983619809627130610539591320799609106453434867105460814026489833967282905378309402250706077309183308195277086921928933676738591178194743825746833746459216387287921680617596676068193977103616545703529813762614570856864858703819496089940536734827521495672901331286804224888628066884729484317711412338632040965981460076667026360234402795265701569178496775660567825157192242864876993046229596664263146202875452831812287191169198404242733555452862653180454463138166758238899972641313262663179693884341811986378270219228241189769779922037385842148020623676930441797858531198664614437442163885667982683458080870132817652917541474093020993453905347623864128314928483251831445209253262526962383856282049379178427858767496765312476179736382814050146355659825315270707140431023725613037001200732653187176530815828259440914399007155801772590388390517075615443675806867549285359785998129030586809757360151485895062616708085050902971299548161485476349523507295995401368662593933367443611461168586652470991385059700704046795982471957008459996633385045829429088388063180476289901072864179444959501733633655564068333657985447024190325148853699706570538446964901331793396259569348234249521990311337202028513303438187101740750254068153105641255275709279384791022393928813060245112023905283303513323715355795444360475254721344667469640588336808191986105767867838008334932679634294101359041178451917067714290566009696103850642345705843731822667196165426057042545627669480461201148810422546186021793617069892544819875092064131025250026672044012535222482195487790671979194098493317624251556879097453997466905153257749331810070963914300153011181668362086523132891959898640418676579342706323292258294502879209678137787436405052790630513911974388455405128834104051412066165891782772022969261160157576884391716877650029105804396861423813523736717651766457474572597039336154680950748066270065516333405000735741519623705404891235897720752001754149635036827595656281799487521148086533611357177924123048835707011124476145961051256923014106510692107542548913696833144993242843945565347248881194451939056529512538323072823079650984464833832855111579628213265215340012222506507625438822640920159693844391535845354061414333129653496162543569087464015012168163741572446454380051639231395451744063918408678097835194836072732663230407650647857410419289757796593229547112953046129865657388456834834478521642781495650351885572925903069924964122949598067773600252562028357832172938336643865356219331442708312869545647813854944571937477870541634437612431886545556866118941321562010510543183835988971162283053492916074900086858371042827169578974488347040109136574310091283114882561983962793356153748711276524597677315999506663550616210277401833181645478065656290359492413949147528457265843226309829007221279172445272725593862185429979425555307189662449941031734527505804710554517981792283915726796919768142006329272282477581152584446106062846728845735535085347403332937226902015463448234815853817357294450508195875224769724773201607487981637223225273193627974132696167840287785055269102690394133055415103571278437526626904312273591540094900771800383861708769740998141780218688692114654845606292861024717000051586428206224420612341377438292374396123986194124264578716846550272011586350955984024927194273827203605765439726883341315184441937020810728591420616121464033240826658780501468925415818119319339549684814476953531820755998395544521189972660303280074001467630851564581517469165812765097096633790021376850209499417155913504629888629960951753632708443944964511777415288951963404051347577780805647646917929639716693659516468475801334623675383725163535535393193893720702011283244247473878393008772993387045639149687693473339818758453078388314805771867231188494234821358492989179902240167279968715171190944413638354275516062934514203609452151756750418321030596327793916752733358409155798190202696728801789291142211061763433158243508200331964927318764546074879431112011004949010445310664326695544874992355741760953324987278617812155285081585555047508500865026090725550893259145390369000967632847473291236673859620344116066770193265140665046989734883031744045752651509130945862611539823676159537516112411981685987669169577491251376611791050739892565543052064655399555605508919588557325345519748975755031798048287781601731896186043292628479053796955763900437152274253071058001865172351899670922531004514355754377633472435205797381290666177209088942830663758301985814782854979964837424812327613251526746072835150609198212297015215807207168174973776640373564110621031735756868636257842599022292475142530226593512580519899161431872324476178525552759872218150707397833331255412697526015792867802101146413963081040233509808223380090020596706919615243212697808119742044355547166084180827141927386109794469220630235631169273380890898609810437703637497414538009164026133616277855094657141455041399869987952876903499563758765440868820535914522778074254250765352460463292105784347469490421365601459849080842082801962472343254763942052905909364062346702102139309895413967026164089101315226007913948575059757464785527767814672439011104052555166934468561043684662000329054231051525475221370154567235909217476849145392315216686732600195091814529287944340403072255576711592006277303279889061700928178456079146693871378104576545742937062684658772030894480482735194836374096167228028337783505635838438782123757967211669760673189490969884441083605239642864160011675275308692720919491927969727277124526583165397757501297515465179553631215225719824174998958280992676475043588537536320306274618705690337678400647158811687584304071751144508500160194345856510760806973700943740774950924109937866786911839351677528627574040237558363919912933457166024100532395877325969952176757600326827029774812348409209351826586011487361432252885699571923840720693398429117249774591236521002196082183429002848525956604127987313177391737697798839847560467596985737918682165749928532756409308041954084246209720896846310905961154979596551406889092215414449198789939331283146467627443326305782594280872507313202660100804195422046074092166372458395046105415028975154939833668552050107077213653849993160969073215833400635242738368430293028679620501717957114777232243785106910700161446379459291229072578598039624653779596113528891622326295115904306200618878762480013485411476911271709118364838988323432629351061519403445085014590542671078292181627683317580726232062868863065134833733580823475117866627579100274681833429393470439741046228990889315338849317359867114262184109860803476899039613170191923977342782064412586110178677469002567017093446473462994375827901606450679005156160070133222422184896649212383368808455856461632402572904341998730084097546898525116566301584159549522134501923071575534593525581663035382477840837900010307963092741120780214238054699288152552060344772462215082158972661057748704600254166840866840474894514167480588632455287184775320635987715506152945859492861414109524667507013350134926298251059414513446980965317676070459212402868374580326878798084132604888191971949102314062430342886268206610890394073792123087051646338981755399909169980090238590907417802643775039824123376627232728617268840419409678679007685629935172348070534465402173944591736548176745196864244107735620150909825564983334761920441377529618869350081807901704565828107875638297591774318348919688662966314756394342795505098772574918119340876047211000824835835983352938721281608358555319388438615710099761998266160616050617072434074895398839607862146716624377187667613405034730521831129208199529421121389732299623627323423468164893681189038564899996926545203210104623575609226994172746593846348413344603945504766826197528496813514031035117803837058064829041303471628753577680594813290301442343201466985887082100234523567553988182109179357166353691118228913604180173825859662971148790515667219146489132096905362187372912066142698663396176326585396698417956557746646518513878479948305594320757680335275188998352034634109191417876833985825303654260657885054679983978714093814393558538691466481379024624104727426478944379514103089589809676636500652539319817962937468524751784827414446051106173431169455222260713492179605670909395388138009173398221414857519690075789525691512848085898523533445878075085301228398682169939884112634803295051387069944595403515115784123079655266521295706682917234667567830252918829294028119535232834506923092265329791571856317347892331295481194089418091964419217511571675916692033943900382050459392604687937977647574132148980776552490730791272018827819208859751859448028106311963106866984633903211330849254183756501609549264412896519171579669779014765392952851410246588167342059394650656078792871573755024783524013467896250242601774779617661512545364663943577700964605328050426283955135994004258559997210617521582629639353386871990903757179260546330902256909887786932277883314921655949241514486724518819856469359532865294607810138382300573687840036018637985986846417559225844035008207312964647426342164441874126326418256410228966464791091772215350292633443210465521254357540960079969567165522548263183495571320862386988719824719624858673168272623104243972126027608475070222977760131116159573907763282485556629963290550118064013275318386720575742445033775841252326517241672734362567594028639235955883642143418878128295530939511297262818880190600151031036608106059956068616093593255926321566810137085787889648891582487412270819758817958677828000791519248240154883765314738795733281545350272327692158518757485135098227718420895083110821832180942347573470819498659433265135230059660937093990865019335145165655789725356957139949130986884009831748967007540251263048604916614134409669638665329148417465790341021573628796692661334516082288273248084991150484542418655710108185470958121984772871289815053510582260093662760333229041605643892467482732770245810952976027431907262829225377631265564581872092634653095927673270527647573516726504299146843568116794424885455118824931640806603413687724791575375716125891860498581358147876614818483348411149712445044830464480053733159803583833572381414560420557949086405280710091061560894630664385378796851624415033346623436081212218431283637367824710786566449865674742736756121303910076745946281218726336713669130622338864969688894442983736368068956926280015943510056806658030362674283190639760357299818801902385294158598223450832054751146422985279484714893783277145073883962329209921560020000620189740278233203168919083927375103323696570049330838989756341950526884730917329746973926210966158352609641190487161439966253553068593418372019040602362428581264304494008297265198890994876467352719685741327239966461654846803098835213547654270432885869246757728916891187566595830079996433582842979570044569498031548030774860817410661147486146325406824484699953678944510989669051489952832874605241194850779856757081560697786179947822446907298214788732262475428436680817725663608570749507816615563377706068204592486761127793679464246370330367076086457056954762059595044113977834791621742364711266068341889429493821558098282863132706527581194737968372616700253358021720440011071021305989277598901392624969459500941214788801868377738580293474686320786058580572408538412492286152743286396115036494715551288178225044491884852973292509241405035853356574347549990727672771515765529439800193914533019372455422295559460869652214838495542734727888835249924195415971629782701566693518988516720918604052332025463539664873787744427841789346610624994848808349423495347906754456401357765437081660689769901830060335982250968837949981744735077713049288124387480287300314498740321083982526097992017424109230080065093424499545028820696938768086870688147265643626815078105785021329858632683812323943909080825094938069890476296592578492173737405331887215419135004469762174667874568616613560657272948967869065396806260627902213597070211378388461678197799321075182797382631306645689834521229728569498695996172666288252414501834978262504295930392069373193628158644810767504996603062540503008494097297149035362344695035866326221594858254785507716827551064482478228283263645670856233315589341559006219580237236140308191451612717665567822319294929742630917285975484006018123315549380322002281930379868966390856874320720180616127229830189356832373892209806132202765512896343387307597746857957456551260030055968834261386733212986255339096853632424611879372916116902588419752607573825260355135456275069674665143370474877015307190309440424409736286366355453691376196730706674590722426309224291790399750478725001378235188076722397746440025821016688773989364291053245578736955724072689625076502038421798636036373698706311010242800877296889099313618020651164927304181347717395700982987554133690435962068734480918950388787483806921020713275528610760041587122642140881410146198748422349926787140065115126314230921295781894229793653110429398775606690038035477745163615913578926626719517703931530565373748516461711457073533055362589078548825802237906876170636269304539989588395127597475639584552350016567048638165168906055221503193493141814708247915853266452288986159118920943347800712166951570381728473855859073541944090994444479627333093953072886035601148102224879676111304040039897189299345244426725426601509131548352081500519765316783573513216217144909096807162572886930017008244272969547290156765330143138862470115019602136768233165890672496498079912848983158346815943795364403021383039216777068085198432355899699627152378185706600463365687221790742624159767764959285989416272355402875870639565538416058495334318978064286489836358920661601972293106410415593154351997291008527085966577422685514182514208951589982737574080575148581807060878829528569864865350249339686082499750803151741940806993539384492113782449404413936124098125824921117788026340420694373162667669048793388955449776858712700432575757831743586464226730372895634573901087687062403032542416582215958206754933868867724487297896536241381205065516548641050111877267154520551637747645682308381085498779352456737377207707550473070560748821634104911856474068659052685864929605632929371660935725477726281929885219574872178548624136985604125791313254236683588150645775367231150430427062736235753004571697824047893621695291424664514554557953948470975897789635016982941225932019681440270735126334397006940804715001715527573057487427137594424004308481607218989765467212167803547041171398429537527300484363017452493186259566006930517890240113237543629810374492949596095042891722899946239689658807977353695392877586620257191464366164383342047811731398061832003548846053641155343629191395836639678244025610923483841328190319207709218380813713923197932537009869751839638984054408371023301742936945882207290724517497052695643495845447126571342431708948554598103867786315774545399760093379408678241869376821792602399554827852302022808395976712548719539654310209990271297710627348897013157730761853166639180007492562530162702297006985278345771104920562007633290350966916441128801861599814195721280537747406607751134460463512985111280532504118909885349425612535140941360890115589887807565228769925666970719850960873701790349424755046792470511404860787304377279598780112696364068697597814712042530488490169277248907804677964356712568111729662382179083685277851952839933535428466389782340990311675525540814828713807820755101033065770955990558306571670612017381453418995423142014285896482601575758974851480713611021984719343320424798311718690778789776538349047619496349514706300641033168396891478729140633113430993531881933013877792715591245402586778412340129761133613514564497490608608213850642398711570932553741357190423250772150321949487629193086120351233955624477728167120997179534236881443061882128076054719589231990492929081290081108668490129494591821477426714857438968781460693588723328993999729375253103845767222328501858892441105405719679975997203777445591909859398837024814985886400310266260484053621507842098262696011165417405060435125776791180168099352900259151255525677838740798487492173278100434663148228203344000620992390427917131844472199116592202392611482199647242625290530119363957558729980505243846969245990957123776188880677055535129258662149440252581733955103185522002768562099219326661942840654345662194837176430026345489355175144824571462538395483303781347190163715780893073530077925742206715574465710829944566013412260086702279796337382050652473641134229619469836366535271182488287869318363627169613181049095493060350692805862909173789455782839019952496438035915623915346768666634510590823697109345489025012088695894423611305707401414040064996837789649080860220856836778391102644461472675858316066379992722172967927039008562026962924593646591181147488586648299370476819324966657405814743646817433027070585693266679306830641356586289827018251810110158342270730853879268344326341222089894166761323126630536740603586246253277128711731992028890460101720346567983714056397550804046049831151525900273061592928717696177064019222229338348363561809650403418564673546671660000859615728695470086467304908272166188605276480204430312618432172333721930988485844669602121274076962523051779639619857701556660801123569424015730640626864177346100249938015356199494498076344482859216155416606521268704718444427667246604752131490344538174091026951244835821534878648519671982853855299268393970681175541827948450106464025232443510712987536678114440713801560398468016622473421038633896862537468465939603690542832800172381553731441805773225163228045185105469153039960630487563417227007608584194135631869683514587539758950316858048196963617464548192289380537045045757217073128483109873120023445188604462813822236669399281415645862826593077470068671293801196041905868634919346027658210735533813529954117491772715144521109769145175816371380285353432868850381098452946705237139154605223332248046180813785742884509403694909939810608316841850253600672968018934621247777892933749701310560168654575154049665716593391497020561483203557192930177790996774805791272091001613368096548094294612658779976313340491053309595229821654608842422308807901718303732303515816283660002970964053876428901864837769107898174549658546632827292011993864826629959939933579440645206654156187164348635721182841047559665371278116551733359954798456510990140789104719526237934492721171432056214355727369350517827978570488219373640137040841635152818405111909593770217528900595973512524278030901025448680826521692178999628525305113903339287326107553944551083876776479172998039212763209577888011796049953203270515219856737534171267202366735052914156464532595092264642054915126569001607346005678866281984117366820926426903760315811577584523919333854381464184319990363749662741147356138112583954408373268614871973866936888317221443960357418462941133616353411213965996427029992901026719689509216070547934238756956903390251449134814355920783113929900937213809541682549121256358895802699760831662169137852558374035257519070437680925311873780344538076155066822643708041113656589704167951593124342074751746372119680510714480054541711713549005255779250524360866709170371945385252303046406385832951009747251995202308677050156632562060943002428511677192622748063034575842606459366663349756329766422311442439150766722410005281634171296472455264727467514459067103691570708740601963024614360169395695852642194883337246345186591544989429232405981283128356887730646132174083385438130858555880887320972542924576058977408318353560539254302098312670302457473059865536785649619670239797710067773152243815698735837640760586508556568520459633796546270683806062339891283775601254821161567886508681232437517758183826840609157787927075730085333551250681852834196773971277670171070209667723332078957032321248238471510853488393716933162831849063732580003142254474694628250814246843571390458722799899908164801837684480644609452169419136020997965005595081924515812705011994061244813526022033931153480091095305152898804539179350179372470412803039365337581900283320087953215965548385713963105596897089689606473066150063707044052001580226065772335539434711503118300329416740754312576607620678097486909736316522825915336662382486208087442322163331908169059238011268356359002669681890676765834840077346076470128722283990633128366219139512769674934056600115980345063092593545947608713222051945816436726638004143261111006749031013060964233687807178660960944366239840192611159603967641745238320474959698148650803649627618272057281979554641678232265686535977382299727114955217890485512087595352463987466023293476575391250436769236638747169114531606975180050679478536459048782589861311137897348867284662830195231625417063053801202320510857695539212600803935667597221792081133089957727830519435430696747127854798225433797648425587992342108517788090545260035294514398560403025045983386840301766417476194032348564345470829015886331520837924286397227367303432647731605561341107042235871922696494802623168854212026012126405307531737122259867980367875270699361693757430769870569855541295085278422726377275550356141406357724246549410894124767064295856537352489145821617609611017544847338949908542339196326036923239162328321780153675803950757179912466275230034231885437634061380441525784606303035123797602887532282455090187546135257371155767086288554361935269290576715482521333152615691506766747279072984229758387812494760352715466515240060784625464574231450700556103716097190831892797846698215318523145945368247099034376046674881217142011726464317304115040651749096468696720440946338835802166809307529110164832270404829591562243690135252778143552603692903651271337844205943903587939352214331123254983736981106174275054528810153247876261656095529958127585437320617283248316002536878699472395214355618162292993611920073840603949457344552744324224156561695608324857845855617568267967649603832906082415024277248343974497507240696983880969847266460181002077369650002744679701719535669340586102722813480721809185084490384360405539200407181158724063365876455536790197030123755085328830304156450022940567279184993298254415549194871168609377159271969283847403501508160289405025940516338464181753558272479735437269801618988529232083167666515970428733689572713832357085119204526752312022593142137766881334965264265785877386263988105679186722190312607991025247667543571676405075968293507003453457749206913438414326863106344011964376124152648211692233147690791140864521238199540671779282153318070955877666332341241541494968184236926362341103087097942838023542126590745702989749242806629988640114004237870452695707756297270683304021382412616618557890352970262232559074396566191298238441255871008686584846742753688101215912105515269976671742904667554955986444652881141909989523614563670634882094971914360174811308734289865895478679641847078954618183194025698127203258502240568285694889102058866493378866307495753370547405904486751266036715823502254917518876828629722759244673037902653413005371436310866610831481081257573101845624084258390921383804711321705849636050043346220082960507226446530522442000839684787273983707669464808401392226644278852602240962372618859997183674867698622951527172600951819592447366227676705834176732811127117514547363928343336916120270610094146030425812484433946882204501965639646417535574630763343731990820760248535412141814942571515140109611446179368665427519630682866587366406360732022107661049019042188268428423879057902457769144924893102707135271567046618002647656501898046712743193878936194172883331297053098699279702942133979399477659554907186843338534939392967567447481122133196922908279351576601042266629716944722732387660298168175252822269389009573515039646274093713320955974245305710580755143644652322242084530976425031842930574825729150723970595927283618191502881059377128143223570763350800800377290478916694762468052677133229128886078932311747286814099533705210405060907945033548172743099567493335132889604661652921105390764177169956106458110611005152256679589879941537884527934534208542689983074125257581699395991416950479866004413953705394053547400338093488774045004544660601611784209373014285540023471466123165459320231483449985263155263117228708560923621833688191322871285188691732159166741413841163662333640580748098106102207161194189546938853578756624834498710612583899406506177474886882692339975256567507973097231249394109577293952221548878347720242000024490911265028935160424875627308260015228112271128170502016146736493987255778123465548409770306594466476363498184809463310342351845431582027827971318973005506963885381834700961252790924966015748225724739038906737394169137503865238337488080008285167066771734772582782345956914747787794699509300792011925898702593959647794618259712066881834321363255467512304784772058151212073694417543259448511793306065680902543447901355323211075253692231289051996362749939563022858139737770476044983206126031080933340781969215268047294792568915514288652465406715212463523716684464955775474631435360510877434342265382305075578378868042692674992388918046201177723204219863304930734027782070775009477214674788446414846374563529933198274193949090608255800562269731809424913928165134101935459392270043057097346150717013376854152943381899090719566038931168484861823378375194886403345161043090166978279605296321578791294266279374491655651799164123568264187238586272896063671062968034506625026648816048139356619685156916229160263952695034480367017497724354226208879545021811496646709951876371266713462240976810246696852740028618534343217807742831666501328211607808704411650888009288335334044583323742417917487406103623589269284030134430163534790253320395230390041146390071373243097651036830093423479713086821556989762780238634637685684584274203391344542986827951805015595554421170516940969512183684930654238173321969676195164066832387750493103166045649240805291236792458092950970779994666136758812649300674130457714524707299720738258592573945383450623208531697204803150481551440118001731804930540011090406190330131814346986884832163226496669030896912008311017099438527632226427016877417655240427373547845794561089722480802501641790043728863498260711701365029160563859435843083202464719608464666401938382667516529340352141517341334599485059788152580563931565312827192195096034805836114753552097397216034535594863700080560022144524034802837062271695872385725743048383888649124310946959573408945471766149451601290596014625482780697664675887695066839097177329477739579742052972915676474348437603122664788080864293593771548094386373665769284732558468328032095733845733715351591194838649292980640669068015984941230070866556701793948291778080685009595240014340563154662028913784209464512527019548484537851216411828912598570046775789196392022346126637208999783667839228234999946512418468322663811009102106922586489079501245175255796820382646586127980509031427605004587028999520955619986507834030851560788773632375803065135909828790604139107610834713717091066136540942363659040235639215970569238535639197434173842543014493115272303984696433395746054477525768605733909543740640522251958855396827037323295891982787745429449831546621293863745291923295395910438552125893741177255107685663671302254032416925578458541114176326312741526423712971941861135466376666605570904582537066581563225146197754123505988730242904213486976213690555580557385650913020619452337204704271766610254428149463164007798965905942470895296992908095104621283165290168776316777002888906254134632120954812182229624215418319019792978610085359394969426120768336942013453441969648608430303969405561430850199892864048961130277933480886640746537881189095266412642149231703602612719211980819095920059890081437415769821481632687825810526695581477566449251912798674362964829640557599024475202009096094500527914382761083716628019002578006865431552106964079768663752425999642462011631009581527258033411659452544312067525742716472328957181458247591618795315505400098866860663073375156887287069394471264368261549308050932733185454832106831280589685167644592678122078140936735238319177990018917453709962567189835274369227433078826457005453966944378702862786270765286110434904686002613812672451204182779118814227839075111105671120484711235752191794131332952167118225275721146156948944410106754243269634014218990388410880034438841786588677632273082862364363411500716276633385965984801198783656118558889503377927192204312252470110127337491567483658977501343948457508634176450756928165160378485948473875065695928023314871302419493480577597397308284787739401131165112532716342437663965817507453896753501739836505258734137034086210225955339031457192864073577786796814708253448294059894672595633987871390599771749201071363508733834629383895243023741824786560271856102342169887695197009079497285314652738648984662325126638764799469789981568336590523604233655255399977698258068347938335507394666048981976179440415412568465440159720953248787267926966350643227813237087423724691843153189131527517747964127021939099133841314563956147819255469483173770069177400719314572419380106446841176000374073107078435582255205759985165445363377851049505289606927942592246681259434747736239537658873636418428457820295727407532326596662535119686316139929481139513982650567570443099154284008031600689723993032478218741101674557497558846253782628635601625058010808526598208977640760353749954601994669979444688974533864312179333264848913170829261116615166601671361417279450000917489135669563884417136392633175791431196510140015596673616200421913879763054543403483913511637001569341921136399378271179240375413686576693973894621349225656415477333486740805043563545470392583344304459705545771968959980582442304345691853999938310440739018590703970067376611029818654736142789378737322693494896987058153808052035166974675343514309755113002347850808269836122487183730733838761723714833169333759728807149057759766023787684400830776164903972324439088324275657753039211398969984725668752809855724389372821218627363126217835958661608782731524216657083561248476476461775371538976146203684850951059638510935230452473463099792406648061676438203863118956466330768337736150062550199448495234466509319029606961907500696832120784575849702881745854982886689785028326173566962297241496755131854887424106034822795754145088818282946246575933179432876869191658176099229602970127898758084813539967059075710138861589234134603692610943980853467476750543499379337836026622544633329617734220761923021404606898549567405145546095714662389539292356625091963843182381136609504347540866384515854475108402923051356965011465022687955570838503346667619316126939969139751626378182118573751811164048500922127121764991792659171344273366113128969575155570547964847323230033591319663101446398945254812293706409928467439966130767518088165281019787481076279875903822037959382068886775942923186980084531890907376801896435676370174063633843639839014298715444502393828226272137962829729701596114784339170330393331206123496250857646246740788684995853149100093441881332204784971829467921632930694136971848659545566601378727169703238402656856672873648364659935277702405831289622919430315592359495421456776474585013018627574321523738543179278279951659503437310555484430577413925571049885168557744767462458103488467548962442310808124013071964089644161490860386241679356949141409950229010139100635456542071112823444166971571601619379465596561297999351189157102639803914827596894102915562212107755823298815580357364601596994975460687789248253198693741588445467156829220955190000247388071415152786111902348652590763064798757671139037709713273688455876972125324917580882424541073695220840087924136984699432814238431063717847545388676437374092651182927758069611468593917505733520937337129323259023589718019211707241076650934560708298208099343274095265489340185338443141401356865190005605969154878398540793396526330114961101239974294291755142105453762888871498236739053899120653324742083212906836769805483571406573939679788837171655323738464644837855572734601453963788341273206654408575556619901418981831041359231593694201691520669877605761344141608730675124677429896024688084799318153515839854439343061517582423007059360016998075629654978695244506119313568792269441553343213140354633531166306724047900116639927056018106034341961127729996605650969319541880285520331965950201450344505831660164267584815310304412932592654186483638078961766375416674079292039093511509372976307542762025452938587056794884109404433291670824490474896526112232609849695346102970128352287401767332739212399425536119865486995411026021847986208782157215196953717682955890323903751552830866452461244323817564413557641946720525785003754587609283073645690190017796427402075023870247114552116339837152878596573673029868945095767450099050817304321334124264744530153245971526086703741765282774256229654943703640716002104792709415866836762894034636209641504606170123965549449829652023962410516656196790770347049775296341899940684438743742445992975322714640405625578545612126524542435635629623642690407593649159857516024915388556172789686564128130299726385958240386108684100473689621402140089007575131905440648697291125659846952997030238229519429808394463145931680615697452010392684632458759457368134981162104023750810813786772180602181263978269107778300994502632687208482566699494977497073290474197805429143633358284355567462991772009487603355154041864873031906224324204026326555957789583018955571766310512559802647662278465465714473920076773273843060382993950390223110715182642899424473824250266689192701804428613029143739214214487179375714174009479989700927683821348561378325494620014893528253333598538243443558806207437536301883713839445576995333688908308252906622536709453969789994421935079342849404587498138943328510121252822099938193473313467087577805218108374530073127497739019913175990644990248455131688016075184481928209008897687642576156416021227836322281456261528134555053051323940480055980750678182807737377156942313339011391453034826834102848069901679452696416899085374740567744880797580703431922823735480208796065809052140823944588399619557566840085172026456522958725731251757252617376105644190865300122040074289921151452975657442042501465736616072142299746403471780760606278188504647639243983253932303226851951758017555841306216657432328186183548948030493044936664201859403752357352783078248188036269299962621336661382915672601512638956161576581513394670739360872239801511945106094935919738646599499801946691781427887779865861843389666093630787758789480533405777811442210984767551677921662283706065236022496673608584154254012741096788601088377870217353063319641799401051144482240342766367341377400273457090768600837834646393578108053715308705555819851741235306389722961108894420165901536905174132089209422991581050443485800234219071789976910706722691093604457734557419491269868397774702342146124900977792770209303580785428117847675184437064296189083128992710284139664385921282577622824741615416329152988486596590129871203154064292186508135426988631462096767892431703330563315297896576876869140194874733170045067681257446100347441032062263347369393234720085339864954336996339862861984010192072758796650023193349327126281201008282353402939638296095363819866734786387968759694049217964187344676024555404303902464998416132020716561142780020198596005919519206779621096485883125993003032370017115377856883161711197230246377366272817385809536404564115376953144892813265956699722171092030255123729390077466757095259484859563570605974421914416523031368161184294722048000803128369403299273241620233402153572749929795162810644814792267990567888442953362417015520238004015597624225889980160491738816712465018950763685362770653395003215506574848654699758471135961553648987024112320523714239032736571946050078848705470086612866073943978815024388572962441001542039055823453434507998075714944123359426669063467623960701708351489109674567457981426087993217957558526602084861884805788238850896877936625296014884945920552836512283731073778327636039908510308716780256066336147357303421346146071478457594674235184784831509206867941371905851946170007549888054103953265012691414807027457240197121643866489228871499657932758180666636267418851101232098214617105676807563075992256133052315128905829882112855463141186073413283970017025527366638090913692503760102082669527685180954366918991940283688319077785826818688613027799543759884271641135706666834506797861321289868106407948536132464949206020410249899268716950360108167003741400107085661889940481472717902914227377807156387599609521237191041890500243407455026347801909389660112982866247204022198336487841110865526703406214676798313350906318377312379675417480735662195849607569670727352040233015115754382125633195891749795389188996782650084936823388895371737116216996539268481020564206790920167418673341606379488317125864108366900867416510072783440973744483512828739881382085707878290081386130964447790440180186704897647704232133161334204923879038900408299963013392275895047008534630553611923147561217741452552480405753240404169611816640206998369228991532033079758780477769260697434929775369930339729533678551351136970442961220737769707405435508320410515171833440872116450332490481351899619293501211510208535710281863026057056326387919088803434382544868252177340576856846537371110430834670042865333768435555604837711953615338972470382247819979558414472376729798154601625973813104355913443865564784299470497481465718915670769151548444735747334028595506857328637825619087010086473046141292603100603329350561102291542325087980958178687936963943411567320818925286758951858031053010547003645915675944589886355451628308641241200616157964117693906434111317564693676060503870996505183602562551506212341659036457901644134793695817823806396499081317722753083682269505915800172846985590863178341143830003931510172146184320774178474907861180097936044759146618954801563190731256869660678918882996365939158896605956845104981406942578022479937617915465265659659731942225113844649953658997360607059181992175805469020609549262903629395182356951564647489918858865973677782904237051527073484285096706568988878899479583284121502681586338574181254514585665371287019187628797254147146701514930243966068482234332367548997157691367171886209672347240605551001780318207304977447907928269005385504446213215754552790966893660845460076679127144177459737581506072287600076906452975609515074849395564811843241005983141258161760378436372070136427440806495597119349402088120639571398200072308995198988192566721213385283186947312286806031738605862692443251166459411312236646205425957609945476296915952142738014672461909860427151590705799138817331351847289664873576580410617804505377695825604958800874937038102943223290266889426227419756276504079884879394388307970308766485985860757711528141744310045242470894245022739704147081651853311038977130568440666721532656823778073653220658260709027682975291545514086724353302949968909421812810099130601305926563215350583501975114087402762448241087861923205422952629146227294486569981373750466620721929379703485794505197609277946986450739887677116217247440028779770549587442195086202080898452748664689818147981344535501034867403195811530547638604104579434707078659587681052232973456928711294185216525932413528139364433179748617141223216241956113454766942638233568029589254146413905251621193564789717013019919827781898281620460031820195720571400252960043239107221966828370126575386826738650197046913663959890961101535715274995347495982032931198227561206815261359766345168592886834169384020297877010895793529198935231780951524360098999522935848644218677343740700833730257055386239525939662421341011076994323034352335606215661428331639537959744434309844487631178034149727449014388297851844268493830496804010833642750924685695557023582012628568192372501224805881882330174407725560374274300248023070679076979121313880478592658189878996664617535491571951492162375152687596989611586430623821636833069663266637297276276678717629524101749077480046866237082504232619242080378479566320803925582443444186663712939148179387427867702212885194881926040243372046007791074744675934977763280237488696687070672739267623682913269201173834137419940829659947589100341488217925722729508755618670023487606292260055779972933187124059538099766453546591511242761122984743499803562041755156890606595159943505861306132691717505084300242281108648932566015839020542063965749671408882113721697320206712472227598657302110722532638911438154518566620638499429900246208023122626221669275649159087116910186585890226675947634049377193355382155491508982454690798646436092121603387324281842994901166347364426743488812896121762069701514361084374097423969191857141538194743065145293728359019812874947531236074360034336612726515486052272057077724678988465680075927593309967424444616011139172374942620082865999288917059796903729379432637438236115625072695996960640363748798043881720731549799066078509552406939263180755838501906332532700510901222827545124180230650585686768841580988838990854971349816037432079048840597035682695315301193794541900455965285460841259976386580359824034838680209452861156375824319322470162740021177433796647191091364709093003693525273167133595045590393055315745760928831198598266283760971265177175654128389028707376449111036132105610882576490694874778346961545726574653837999197060193422684180464218959751993042459074236106367096597537071022866132190560878425624102293672584279626915728812370191489784824860673960333320721381628447864249956453079707422228323086934754986582434803042560139349279337152507304586713046876189250515341448251539518014593885499695347716565051773545339519199781135119310587675262805651699302572974295861156272281709046816495346563146443906128196604217216779743642346404804373433301001096346402746214382563658213144005280107056980983341849181430919859257837097163334073410115711660320094783873847124773830033115299817106541178427055657706953555889603717853257632444745542119613318872539676636297141784762726206620396802503159558864988855112866884997142051582081649223825097458266738076033387023057989131340796538943735358911025445679931458023990371975635801290634281226292787760162972771163440646016610788911234952026164042456369223062158405309185166199861559416979706301795148722200543547060394362429591596622420253249726570369079117891490159066812414306091888765086797790859728943304420616361793826712599922001804956794524041725100778666739290020036031449882124616266345482041229400676699492029452123568649924039306160932562094026606220727816803849783889288672982582261506194846999335931677900807219423715336581366145795110917556230238118150056746817860782878470350518182568387409715943287358903832665337508115440568838644208118690157764614342304661337464834442462775087380452780187958037742668923446995051143749009653605594762471317363421971304011049090389758637265163469299012282162135083204457590496247032401140627622849923627729907449865359514250907868068288517959495019404481353446588676538659269132822190317326700902451462640420181402450494662369790691997963195983842285238308262900134743545603280424949914619232515104423374782504697661577148146583961453962538350222704342375853053332646897279046599968950100373430405877868495442581382370788287743638229077445823908729766324687974349101512509265621465154518153961439377188380891721962790047226202649502853450164485714725722008923683634181218777318901703351814486983338080832987699720000475862672364187130781509296949006016056203114407789699767697514323676329439029772482887649525646881498918773575900647984533274219318882518930058569110364973764684641471719594550932211644021921351051986573151477979159245313585826391585591951807503093261583834937530055232168608384359632389598860720032832569151426424811132044938784209204781107249382774107780170581003840827329065625306322256824680446969320624045936688608911461351614949501425206908246798922389121563047587114445136493521419615992132386526230122486100620133154199056702241030003427490368130889620774672725550174258469669523550380009302029306136675743503991442483606897686791670156645458467362359748677159713987711039847367190683691286401365771922002232778355842616865161166060534089715702677715937150096038987486267542449205813073918240401254002225710690465961253292112662187929700292728164633378630248554853379418283467270770312530990163025494677036823189975345850971583340196743653807690302387409619159142280444755691414867013711810963529939049834199557987935289099665981843217739171742965499035877869335241037400500702472132089433832002770709947914253366988030891456125337471639643466653397972573842892956685955375192357392686298132981626442670903140504706613874778297266422341513846949008323560197436322039769481951439254509982770977470160488865024475553219741743686077022244899165388365481106247165486377615757697840242948462336681744317403198653565693650507724758174219575189690063706129750661372157829530051831369504827532369569317113984764245070646749221619904778542766625228508984565784027378307074498922732777381140987282542091761952730143789931607949116526258646470801582080891425760055041951041510166716980619471653656031937854247310066085689626287769545302407315367923411789082103153157831635506116781789022417106180986544073162664942437190739980170209454107568529034763305620693507887875326548065758348289554884547476603315006718947087855879447085161602261630753776921840563569199356981960313315887411064037278847420730143415390146881552507450062679536562589811112319043696650649391883209945816210689804663477604906198783090717958914063062592461495844739873026162098406945029016798667829547097596078470749956040052641511729926719650815543957971682912393200962840309083601753558363391463466535357045482556459109097382078688831640070067557198430772668539764861254695049227469364009215763026502552380574534018444847212552006637217914316159756095265681585746381581097985122139051613271751577260365695185322447706029593524431236940432289684747462019515386549804190514086773243239358205409993077951459654527055654815809954122715022374207182459566569401392905985400877831652284887344693256102569332756877991587966704157018460305694705498223254388664143568591144995320195561273070143252281726803928855613394640820941796669374683794402251809973098846441473239631673409910168724311748529997894423399473740282860079360374921509633011868307077691432014079087679186842252487488674294242770264635114396794702215043988422851117771678725488276929115503342007962820460407423544362456572518223097315204513179009789709383424192790143619501642281912177829713321102012651744130974650471255269537884534116381923051947537043713467123278843270774650109448879699393340733547038624273662884724115935490232082169347048869024337272186011670847506868032514952862216391539378962955388992181530879324022906426676582683513967026282522736249912763092279175947763763411528866771241049127569582968988480261039203340986135401075500715493798797512416890950695105782850842511915683623711469445634928754740307479864587057809606123494507444658671468095494343843736628248277232381257588296672980532499196321634492939646894117615197898914111845918582992855781088642378083486873632919841834498979073853111935579980861525964042599072557474050594556484183938429274936683567320938246246781922790453162919000547738883826390687427586417844608220205698226325753694844990385767768722589099232524414967612334202580947965651635011288804135411599660538563596240195317442303093587418155760718385467607042629873974959704405397422709832219704890822150377929743201330795804249824096048820344639636838722292359934595730274650816354257649846495338018969387461431812898522341337894599999174906587179631842990196904143333967422211928254126378252776516224994601920020821318875118773320718408794089512860207143895284387270576220507832273310242447603480887291890158628415815462637293906322184994338754743432593446411922532279643313613081292541101307477725917896897571040571808756832353995737582870325290183251668008603847612694246910343989849680294811608662766166149640393050507992801678474331541118633513287811758306440013623695740769641869666188485672798640788589728009430870258253817197466185198620489813411869385275916171344986191929075775956152648212867534354728624314030471635541103197256825271116709318848669374560059146324272809770988974905833825983307224323531260126260095293043512986674680231150230867407113066992506925523258158252696816596875023790325408749057442073542023954624125485324120172910362124240417793746922309828545654898352095939833421337456631523956195649857414026635314286855679488525892297816778761112860247022752033523729312250766407094629528313319775399049903279777347573658636766620520507984994750636144673037956335154125976022299034911730676477972119078850761127898849924293519578732662683839690763229795916135864453313908308977637167476113596831010344915387796961312385306522968381595575823043836713086385488917302339453201648353138372500203468763132919173886448224596830024224597866093678590662633721561775537955505660471219838211560056012674531833059647253387117392293248003654482798810789378581642035566063939191312311376137860629107502049348040338553809635785027657377684152309059543928870984320308766245889620960196465143947101330174745610486123277324658554326395703178192780799179232960092887931121402871240469126972456228687399573041960621476275104286663281173230881290830561010043002090542356842232374873045846406781425724054423509160345491691059501525932709323380413415952645102615331083027823794356423147661388125150304522014773242615835342734580930164509949688643835801385788267960664920400876993189741900537429028066948371468670304937052302476263976058633830699887716401349532904363521384895321466631686814818781128149907149557658513302798999065540777648281256618183763229855436809885053853290793150962931631154324225516898037348661625583902171783543204635183734346315603172765147826259024365661411731025137419573615414742237821811600873690098156621955278468259299035500956509097827960961758227040079410913850548780592439641394643877630955133672653476006495161121128713329251795685601148629163497534571023477647513636676505682446078321854493346153731140586436943316702127007223195773180513519651047144861646506533802761980603059609906124061494934859925503793528375307036545020578286918718933807956174003839299709406245773924974997806722290139244263904980435320040834740673017157588893014458438493862745724225183537949652625798558789594534756592786983305690291454646952778754150990518635102889223189435902777450559657781207827716867013639310303000012560971635423251462251181810701587889680508618333629385715667637165604534768034883725179717586227606939176405804643620440807621617292865474142485282423919998026019712851070679796676156660456289065267798315174321074405779332598228691412390033583720845278713573274061668697385427248419666668723883138070480535334147263704840546136584734383034142895222469988820517971942905025989036633164244724008941624866684561523863873843930721271429873668213489637226352877058118603240512141285463770062252745441966680520886235799536642792982269382886242445159437869397273020431216774676804087123537658012994230853374069596525502707482890827599604967906475754606305831492723955953012598513685080560446630001950863703142910257802722477508157809063916819141821151703653926843636748609541282709604038423306664775622990022108863496841277376484334487075787949402282191237458918465765037294476406474566649909394101425578322541925500197531146099077397368864020932635647526678273613882543897762626247721831638018721803598200314951129673365440688548480589256185213445176500079210699122556790293006594109121352712762489834190033064904793904247670749042789072987381540778589592898238180700112122641583024033608006339968331012231793125902255121912997235385379450732768729240688024227541433200870549166032893396401843952191941010104604429897701177257658673512310941553502300890530774026826045570894075910018898611736589756376003270070975378653026595188660709254089568018160173146086935640066593534491462196356527577530963596841455803837409799750556879616092671319798354084170297056516869933955239340192024753749885139802149039328793150286494507955521530765206993401838875006131647743193602272011124697284599961129916357260709155196270351790548434333119437817631139139353262851077199602318508460776658715054800476985614693722402442535259258208850104193118556658660052345618865518406045137352767621691507026519859893748877914775915916500114595393285643889507507433682323150111636795665662770231016453382918539064286733944358765882322840751849355357154253726218245735445062472047235949748148561182114591002264581197872771379105333469260833066728251957985245651719390728426706817482732501109321828451195696238598415351922102652712224101785300699016191925822157526252472843891718831188854579639661059683450937350290450370096042429767407356196524329867676226302337696479043566325796230134565528898165406332346216927904152984165182847351551185925210205353198789095162464872844497284915209712295818066083098188841818623686871539120586603753929004350011578752864753695986804915250462071981898607026986463060032895259617217963546889305191286351791402433319306650796730011725305185246079604199055315694979256456415556325927712328337058166114172801652201297338073312213908587679502378041611005214488817539656480509666025998530217290156239352441777218314128163195098850851678656797734282899443160346020105269489838686201378610742111428195648304743780306326259161320341605743244414006767707261427626942346729259966578989137116815019111744942966626243513529518753397261122597535630067244633917939461036252598685180863107480850233554104309522992501739102676035118480883956826773120893004929163645973602377510108232887006690490435337023837233968401292569749886724410220574469914682217156955804141742470196269084618764586008068898276959804047446785029098356317411913470922496681652398642785422232073756417262858446250616213179237110188778738056130496761434882280944880161045239561617303268414725404443676811511299309851161501954602976395927331070799121981527247858086798328484328032107387778302264257741287299094206148094134030233484579686016009208269979431583859528235279521415882704888462077814366124008365851968245580986387719591005655205128993193014802297837673588882221392887300245805135873157353546954792557392880170612297585025230139103444289708190060283708415256792582621422653420255103371628536647560811251921606357657735412986500640213243183571387670790077730957245211632823514858322028472607062714997977960314962326549535591209016100946882307168284140887264379958816624596722951563702056855417305239152139245819282664122723070022003444806323819228474243915311201488717344797682636898283078630299357300860188239932051230506261950179735693304031907639341822101484998164368291215696626044079119101915042760315823116237788606573301596896967499697295251918562814583706943428750803659510667468652895253361869779027342947753023175336284155455727857065691740469845803445061697352328533406494100795323280349331127429082012788130047785807533443608822171600662507869519887771834617380369516888077507499811937439750053212129229132864526789362572945576479656283306427166359034155007199034116405054042191774027070976228152029220491174387476691735803732422143417432456154561758263056775341452775247874905426872189822674862140432208264396793633144284461141426863822058328363899896834031518923827211776828821362490865224421084187285187879439364347476799859375925825270392287893854056389398973652354760607933870242703934579422292191658519111081600400674194493491556418279469564410627134849820848930493999403154623062884649859750043819427188606018137279871041708944135932536303333428269232463267931319989864712192018772442494909401796734871341373760159654411221931714253205458418095483910161122416174098156697482578596799576261907636933020874725438847309477835046814468743995622834871922974744889003099590996737308036801246838614324206992772962360237157490338606866814952214875088945025930053397188863364962937512697681262004916142222813609683144298364033591043218931247007276958381803078653538167325960944484011484356923409439617900918933082950004200955001997607440738430378001998326513594448109955309141030755584720915081260912932333432628428582849712055772181321413854180326063464935863141045343972753426864420461088668510316547959160804801389781227306692498636133395928220788686015500849150365732838695035987360942724700196241057344295318932894628174772158929204354214594422215790218372598368655607819651733959425419503914009073174411895420171224808351359058280635087785963447897673027487609988291673593644275498846232886211847473879817502144886998057139533264435595426954214707804969091531893303034709681785106240515673785735923765430723902574458982033251447331853936338253161349336703341204246621145842984319138806580944877559418900809393542446593943935905860872206644153762040188614934555982254952221102204867278657609446475978594875742065269385691510051613478354515877748357430359800139572079969299951960445876727030017495167469716287675500227204148936216156215957219298775327819801996355587100197825953660565746277136922258107706782028426835750181707870750265095765087298564788515346359708344105616797762749018724985064082145078823022340947017624530711926221367529046015687248243511569390477478407641048743689611063379995166228583307844491812585398362809138503583184712834617484986359239494554978178319491407027192265357840347628982937018350521405819666134437961461113257046875203410002113039275224271074088388707625344523939830908741226416076785227926809124576454847578684486417654573665947624958648479307495960245932308953559267660281491131216427228486959270159535414036881201418523636444813721445927437995195332058420685752329427782772696249438621227874480484073357451337771407063574835126248941501933147754862122814306277438213009144607202115698421118599372737532076327830102389938276241871968822556073402969782627190138176697727252952339346337449901860900146487369247169405359798755169407177117156120326385269019044351801233350310607351768170412737245352659087678111950472755028779191600806145001558087647844367696734055107994929515500766628500949870338933221096171681244420355140624373059772471810869760267990253434387914357531253355150978778520064715654768895922013062114604075299585430563426387668768052883555564802027374509493790836912098186380558255318576948755237633286779040140026237165151383382685517791811872711269189545254461351462852060404798247548260969042953431080847552306371132594728299482477235314369103511766715337955818959840664218851364416678404610880814295605950868741836152497179273048114587681881401136166791054588077116961679098624001799927550177184746582822204655875127854776540894933638473464708983968693878811766232851233254545599234592262116544574624106457126702456022930404398190012746679147343138498727935954571840366290813492303273246787525082195988551877713203978909424640315608034055327839283837321968237860094485778889924310404166555527449404815108865545197109298069704412320541073340391141835302902528146336126940830906194762216919379932322800545268115390583657620651608177924784100372338930639744914369794336796339160750148694522590199469226495555246463091512644061358914436793728541174848218237621787458602109430268729372027071825019750748729479597930600019359562428337022448227820582529643256238260597269151000831619207309143161266068239268307299383274624407640302765343738558112452052665092797175783517083880475026783896200307646881970101520332868726089231437199666385489172070425357420623479246953464406780222505178930797311807038713878086385259171246710443273321631892973994195097297528389617791200727788306674220344523783186593463471841957035867637695288802497854670844739482481573035473672913625381755223684134469938377132983105545792512052291974202583470652457231225789965975112490664845416759410510460914723538396347818116872879344210627790457464815527946577146810813384444229473956022394979631695226592916098906165399813559810170247752465475514475947856341698420808729736710870934416625481380265871822468046851047664230027037705122076523730582909959608954289046065877426838528133451465536558700772280831541501126137247653839331128733563221431629129991989924857192931085511647366763073171241866204856918513050391387948566793772703064968598961711953825398416651965991189969819654778138880117818222369020878903489290706031858150945789678386599369713116982917465054969647944751781856912243381695291770174380666140033582773023820672498427377918633092417218931647725844199929296712937382311529823808140299068725173539338586799981350845908449034465651934503441678515535760107973551062812740181903329627815625353541453923779717211151675834190989929263032723463062603612042268707371728025198853286613523752512305108523367768046300736976214566874982765040173726297142225952682263613709917582133459442681005281851591731747646293080513066083413906849797059417384559360651983395730765387336962293004401770438777395243811795491820034188283163929222461651960721622092679344716953267711402517502182299292064316660185073218670549053486684430916855066411966914221795061378190577358627547424711069919288386985188214635279952006976331469581405656166445349120224958570232108577826986479163538236310240698137838406860618428662410609722943753157941330444546000413606227407199588337393139102387970125565183225744179655652887917219034030572171382708010072246181799460727839065932521662115278745981942247000549809771997369393158865614469670677606757044185525371107818088726025126829712803475069782105742361913799357683564253383110456557009463496835691939848248082035330316986443960983662830957983468293276477901662631250408734797129939150383890351229983676565389866096695940985827978696890121665114387623887078634606021720661343211563353738099871591111429446299316327081897085349938923190905323881128576410584413666259331470976902240361019677523369996166397375044676104034331246132996601301106115485935463508087563860582517373330421502088128308320472491350040745749744104678801634978327287195353728498982502034073553302384512181595895494564619980192305011634745321094212583588008025599654397326534954303471058023126152709949759801303393979491380312409269059333171226876753607754273471152890965063686216456488805012555162139087742160143533901627193406625365169493238621237695615920243468116073507032601124002392470797234350642218098290604434521362099428997237609784689442828960333478612972872886917307010558105678729218750807456076913755750497830157309253277159591222864678975961089944404513422848008707929574197290335129897422768957118373666261463305553497327033389479320804434492846825924701351795458685357427526642664972982850304312514196656947042111492232221797061580136088996030968421311701691349403842324831762968705719618607253442810324767300253186575128844349364401599981869776294334182507208987699816301813811501385900761477297678262670035339893767988684374022496202743934849953086160928047118867117590511322211863910864844751385647306664837215193557880266422605692406533340909912953829530892892871088992824769368495981155529871209868670282886830440378494615610861702549203077784641931250405468379689263304473677271473531029474454189774309086658503924857286566207857594284149157047062789062528402616955526274604014808501251977257805266820855517106554061710643526740388732697558957505388938871563956459656455499577974163914168834983659478042174482250657493747381854401657485309845791610907099245942891169621355185191487401143750394884996244833673196297555140513094867473320492193993650201547490226236350443352256710674906308520241511625653386523299507435866959699496833015225471267186016379161617149907721548498456864704178295354447924003940259550587116452955742908383683735496899806025557690605105084770472098639057795065599414055966232697470317571936154274342463034700083137485980129255322615759702977921150901605219401341362437054248530013748389459818960350640570553697692943027735913556148874187200949755414782534991471877154655931938973559934446347596131498883417022692091956909291607960956397158891946983145057684009448238300325098907380520611502213258029521032060651321818917827891420779731397074666414885548993406081716527095997832495296239455379921431530927335515426051921665909286107823325969626168587580611381893417939094701647700322195126232982399189428203503827224363302501323488149130425098088107372481328582235165005652715391985952635683605286711853115145470338724811394260387416125873460867762991915781605982512870849111525765405615414342756519707541390015008876190035578763889464452217242199835441883245826333211315906875987032385366223934220237133773542888806023470276822122057017723424665727186174144323766829234458374791873635020723703091974956392321078150975295696145445904151631111141051995911986683901604759208581325653762748809591022837497607302265514997419329568970469481716247147980737006764240504943105207421974651797462241492559878115647404811541852338885799426730337934177205361079337784836547506293740349690381063443527164199394359291898191193859990794777617834004255894148794561322752792880669172149974638088953396432043344596893928545763378912255935981342807469022438928902434574937859388629363480848157643974961958167818196099053548338976023873573330635565647226587902712852697339747864808136632212228376244066362754339980934143098075368876808111959151573109922908910492762674259334890511729490359587389405864147282201331007067277820389051903102133556575510624088158127754605091626502708896706475945985260147611594307306229171495189869006192508449281243887310459827671218760707856888175371022394968069277819901474751608237960905505803839643157518295157969269979175385230012390888428644201287793912662402956014320553983998688338246279142858528916377579625238478033635334203214978620803884026900314680949818520993885987455076700721905169439743395437943149222773427687430876630964560422290628287515250703702295313009488711102070905834338851757554307580409008075191008614765679497122307650889163662908701496368400382838081266742279552107236394840237038336871815804073291722214593764107911559589849079719252292927192543993167532512111214851574133573144976543070275130213585818552889457057825645148506694167327056978389133437859772517672072683992928927934573996623616567708344952548596458001862238726139628829733222088531596016022089339483662351409239868815219801578660724216821491937582016358619221025496554924886464659613012054902028695871661198935648360247434066165967772652119304322650315589825656579493482075175258363603173684936610313430434347279200228124012262503930724760848485597640793791062446706928936740452048958975901314140797508833042442138852962000738713147121409437822350549568437317172214318437016820853769479625564304940332791915316938191951865421402903217448612748611856344059315905371318678125137980523190622451424410665786277346159131971211027514055513200578636219386960418272984272377680010383389604769094438407581301315453066411520646483496077049328550295604349549212439038375534577178985192913518117077627308086921554320533177318803343113919963205730728335192937613751269521711556857679247125343551581040175515370600485664669967736112262435751911926924620258743124645119581948530298958265853278305544622379757105809868895907972776224828753989922647397809985094995728064406751228552500423106621761118916287167942243628916972355163641744331029034992266536924400085512908854397447585219409032246059162195636001710568491069690729907905656354067689670195622696454527910113561513049469533607801605163579645133929115989099830807376470043450665410091609585995959305551509836871937340830753905494517598328819507230158028358427974128662864273487610585884025526800370156944944348737006311930500522230262991847835304498928685547831101163154900579258093618723625800198618820017912122561601098802313762996681919725240394514607828005963584859869491394092198258781952153130268764799102194220069986837498337047712292792340926071469762082396940440655908954716410590096807703111264051114642530559242318927840140789818508191585629611987464276420505842627484321880776641396320941982374012767440350451750698951366015214483661968009262984797437900770463993613301045405527782814944640258869616507899842543276064614240741523262612638651704477762475225086729911919993227067524077564371057315542684975102084304635970311417048237533731027702096095158519630795397446156311288137638315815844896071907628734788367615583067934629372903193405480775452016628073848693397575020174727390383499749164455801967434606347086107736667339534164186611255072446173695634807045514579241716271111346587137153840343759204303973532961677206931446152579561731968421551672540980097794297949383938396719854947031674788277739057383081313740703000178187856119075608847218666667910336060527406036786748090501400201046123479516079948708593806097217440332366512424630602345053533412850897008355575542043396594072649313166130386604589199996953688196991409559391688951547746713209734446621397524952771196253883203789638870163906281306127054449400724126323066341646079183004256352180430739581427880076581094027962384551737304186853647243829453137000440262679794622977995061203312717222363296859545246020204745486444184993455660590843139795298784052433627631086817786233213310515534280852249080304348033709870618427798621089059994190241297134457719928049385942094029223721833729497093391698043722616320179465769871771461528484759244338511042330528602967498712957378816883058616245525159719171073416612405523646964014700485697233007472698450072309253453740433869995486547243152011922088334366189066196061080585315723318096857503702518910061486706199211254078449560765086459223887779273147242549930632973646963947720771544836905762976686909761882003208445398186716653380824736552349403053876033197687559844488342371878324533149876155548147128685732851593410174479979567192403301081412485629726139954077431280474647876676246729620634857199732108706159851216697345574562601573288413403933158361238617510025623655760108713868832980756677193984704847229622042127639562576907671037798673268934241908488266275017894714734832886057979660950646799916650389490419499222835993840398896336788725260847446079696533733787200858287810364402253350422542530148484308315651971701691628432118683561522108691004002389092482698422323620203460901739332855129617212589270801925858080255606405136883499495696539597832900665713556943040809888189911941333347328002378853565832218404404441557416640949158655549362885987422721164601630661828662600847117237661629700132669258660704326469194335161953641407086921225295343840064657864294825285060785141352853424285036334103127978907828222680690460535927978730510073987586894398068744675197326453085068764473139333839574483770735300904050345129954708506510997311857121008781108811834620732572002639031871843017867413282815690485342134219153508987508906018513465446534594238409949679438149126147316345243875484064908477904920006348704659325920155383297019274509171519115057766631844771856763282304962627019199781568563941752329682934843265817469408586236308100557382330214975796832901987400020620138567525078212686209813806348808041074780150084622127629458403189786421381648826272570026259577312540067853599867480638261730103587716494879497279758209582316368757329490195040492492100300159874461363626420591449010684789790161683508954622445310051710231328474479586057306350251968518006236989182537843519825778129047953884218903853258050049682111274712096858194195798131603382137838341187022075165220185900504051781460637254931724061886460190004464885333115571937587497555237439717143402688624961837511463347278015187372236310172556830655267896863310054564568286021980274821152790056143546472142804022882950676343635847537505650423299228705301448046520702644766503361971537153019477750062247115179678850287918896319457603256590253686606750668068707148351219226070377329750478413151505537930467270893314437211499246938475223181758067366457186139452506252324381202109540580892716639745828772787520889843179692932566318079373496052422108156750499510716359968411692936318999401765756182877962313564649574042890547563171344402685589319966015771162959406750353692927144767601975838360478256014460391834588523348478663383695776682828602475394454536888465937073799433771238867644249608065670343682927992998525383494590125584160721070438902981317571755642295797448349162526821885211590235001999431303495251827830436745320601760825840147777837077471320958963826310146345055168504995264320862682956520226008474915909996422809248836183019084590385897560686622435221203993425145892116560053100585410154258520803618462139752961655151619709424058490609674428852916819232389071962904817103284562411888300607086183647629690883424684262485318002946216393879066719571674232727498643766810163698985318017751377363466769808001415322382694048100089765154888433393238540262349516556388872735392902417806555325873256558338705596750627351018615408597946835915518257071344974585258516067325860600116672753112360392362072487560198371945701426017529094915539012626795689397583107138859472615155527374140122744366695076525717698732740627426067454881223389758538774432700420314185077227139310578036812527532880721324639906100493777581811082413090957062380875233507095053786338338735889814483949925420533514665465437872489066065098821335922425472752565279904762209962373833246802695239249707695427081126467343161095861641330550642942564869251520546768675076228355392668515553728151803332346523688783303024630343582667799282548166954007515157810940996440790922181084436786708242363516123612398215318665043398539197677392138410690907556311440914563867309546580678313760844104973083311094724254154872760307535207920542398271664847187781540355762300932650288120468567902646044057964570550470818728428764758549635504604858347402760136510981404961919381630313393248044382490305672679827461837196615557181796757581039234916952085385662695856038385275428554155291888279924881031060663000062659622899033179954389349269749234499056191130677463943363742647737447883950285971840846526155482472384705481872889854584196002549628401224055302191911256250601745645178836819724643398272713462367580345680052379435413022916357311245556248985387819678003310579196172126972286182471666543005275625348145079549943229523062618464811750742489280991297067186665995074562664985233179437912327980655271411559523595721138995305450871254766362590672681074917483860566586048315074729565785816639886765894770823913963022540077728074632977848392272923802974508724123881128222367299884059957032038220557139451685797231292694759805981436056369245935509931081302213130145724871674560305141531364329906238736244624972564927385238956849917292503294706578493350706354277422453808173392672268295297565841850447024269964162386691507761519619691394477987645348977265138244333218102054241284494273232832112873747801882685169366242771880802417095160725360068493626269875990980747800171801762533228999588164116873067240860256105241273650570426313546627361308119009542760199360679271401111265596835347905239151119214363789716420945774214448037115504730379923973766497365289990477341025838903250138199035121611152728745050368198864885401958506063771112315423158480895928905646659246437158581184001380693817565512739952395719694023029691322179898739540985470939044610938065985978429945350447931978236118665371667818364339574597739879795530869476967184535044140994116227269538876454551260445216459940293127768766793680280728806968028244392177386473978603484017299598494901320145142050454852958406855864561657379158821584941979630973664900906749216435427770199227114092454957895816755122367585666116357372392531851593907633556185559322668360360593500980276135567206719824716318714876392715631404510567182459511260532587024737004248901016979350123248131048652051365247928876382901261028420226204112907799016909231336108976597434706792811205135134883959234151512370108849731383914015563307818980964886261925386684607372332586263363314595596550921884825600270427232505340230956404404118538530092188461060710396113662994445734383715039003293945688741131015092126386139765876311486803169956668944412838762723111987639271640183513643309852703691672361001560303225656009147682036917520934401197519614050814199731496016303271740667955425110937148245757952801500266897509764998625155372611393897242578951516737378293392744244357405430972842423959800547620395631960344180366079363708766455636222473504065637055263705600674534494599638763014523186589499625403131645932859166982555700110252871647595983016327039643802403743906679072642549640392621127488971440113610862995345684180407073192289236644819181993541795492175140194129350151479776627801428686896850722417175679461930924516346763937018673371935226680424393703670233941188321567143131270483955077954248413168044189117930847870546046489151779471525990731992883483110880683217363851243327012102567557390320837017655480864681095439716499167065202955082622450489274458297824695662237502692031454799319523074886079457915150749637805189738791911376923568807050622603076397966452943188452665700562260811934323096804029684499766402237877987073472633386376223404829350423494471861012050498425884468778567630341298022294255056345192759224695163879290113014706513113434311147995246154718144631889360861215676703151166604757549312406005162899672616697876774179530515331786181795706119141762731733080023218024412804859618620803348149231707412046590285541702762996689502976108374086446341991829310724076719291588725612911701847504624784159769690575737696119326342837962645027088190154311891241969360611548421399018621114486548961312716338517548797293667347651874528013767980161162830318490672966791542619602946513806050765465337372144534739687236532255084926365159350528986361677015964734805661158030062626235909781811501578903161629239663043262781905243910054561516688406464175370681599945500010984801643123885419685606109692902027501950969722816260276302088326844483168667057491903445967497753281602863094699012774501782260310656869330324435705636294076371545135672788472541609033056899780190963059875983415542923286053248156844619000631123512821055102574022614705363373091289075583195498720787355030658764179782215190994647971442508675116266458575239496272688050853301243469172519203521941561612333226000308180400140456659824265334971859737932371062795231445755473977122838920503574637709086106383568848819800659900753414578343418547020682925871032326764094243326270004043375254994986837166711513541916199471594105129388252210960053693484443445476904974793753782802423808732259827210296906978942479562237352374864173859167607141355567617362806323541270650796321731161395857795784725793966854415136793808745395441782168951606560054243325223707876120954695568988184772850045470938402561978255510483722051869457170896960322303226819323670873406562434661394890559759433215570586499590440620508986300092941606931752997618749744237230566028917229011130233705590698032858824082642884506356459642455601368568860292042927739646247963781367151433582822374797579042623315129976827883655230738530436243521724288698296368515294109769199991844175081778860334975100601157566558892865985619576534396696639460348570964380639371472817562010103316574603128077892752124585703257821763876928651846537698745288041905001815186055358590434250015996215122457184785218822367876243679236944424643687572081182991025749530127447465885746032308795832891935785791269244723212269547240797821387650170581852452422326665880152194204196884468730865168082795550073412789105768881510685530673181709966001899054555220216243775908163869123583612609571283991854039157307233994659670953927336010185062083095666013406510228666795233389670432140432090330436669878464981553679061086952842861807070273900093904017798546202517394795484485718262404232248723361024103523158804224381816751919221140575294000833955156816836232735052210232044178269268879624357227799408933076363665395201345861406118941510267314188594815281917545734344720242887040500057954000396220283106036326372731389252432834610463925059761902985888687492001420132563419264481805270141486894752604077295699000574846431829782904219209497430724822360989947788673838433620915644107236420118464349464738576557997821263023737397196448650643145701628069899893892213676668385999254795410697640021594955911135767933148961356431307368670484749884610813059769668597541909530562663361244254202635130138510973854830360510845745185616765514663787133924543010147607375661189146129403918094680743227038159009281988107124863708629413120873752302179422830666699963364141198428717294024915532410471590298157958275523653992851168800721425136560171298927058695348822406453148828751570862457968153225262838688719248175732180881604862079932504245325258156012855044853022986642480267611619921459317362609354507788925061445147438776279885866242146406732279630177370193825481013732045569133499452787166363827151262686818665978473261944639557716844853585165562006823936484924791737457254576501719491414451086613412917831359687091402272656005972379016498851402737003492181412330185042088108285012276413163974236814280291092188458252521020948910738797653822775252572298497832702904397802676142437801848784213966551171937589772242779628477398288876346313399706157628114521924070819885665180125042204715336117446886475243044729170976138310858705344035602457619066440102033935877046740187819897986798769929136593394020820110078608959155264732305473493048548635142043811960148986162450791143434147636448401187587184648032513197585638541340509328356561945502389294016337865058190107872767928304170612351112845714586948118452839980166688829425371263248009329837266037013252495552593271304596369013417906448634629067410231711520936659763557720559437771836709426921454163088153547254296517416516031272162400554678665788638407078637576942509601684862805293401731141843440452728493604964678435993924949179696565793251944272274152069105173787298464430375775026601985597479090327442519494732122426291426866401662303728305768394658304720097698880305462990698354561905364530774959135528453569774848105223610121332213309585401739330175754445884986911366431369862036799281094768793975484137925647900031373065189215254811558492752159406388152559567525187441892776877557808641379787107125224407766170364638433991398886539720486467061239514051392864938775522408912910939949738023123684431991906626743751495302706168999051413194112876955844279457523716542950204297329496337801106005770372662155379177685630345341382078577092076261073353239953150531010843027713133626803349891820868232479455115538166861608478528130913890700832322400111573079254145038792621479197156050146869173710137191639261898363407398135521350859670206471353922419036509759796517646011035089532179871660971201946831012854428294681827779612899155536316468579258335581159823656752070773922334444841194461008187362711991747359852191220902007544498880907610391901909139458930496208405499272291100680402648664877003912447776676241476027381784817979553768328496796616797042384599227130919108329459969557158454157764505055461054704864289427784901734745089620883545445000731379810929425936090633867677880890449586984797086325587454937444826529200110496287513174001098132508728938320832003090524846468120168794986643776618509455534566959983050802342523390999075564905175377455672668161533359543198680326962862107997360301634510483024656480041967914579666924316745137524046048647601496713942853352638602720177049230915986547976968634370899771733977043753760796038733689686216530029713169467469951214922344673177065212091882646643496902499128065271352326240973135367631107079966484024336273241305921448061578439105191224619540140567399280790293639212835305002315460670877142421410730656589300039027766688820046792498486122580557771639281065705919160830687137079623507991402137102574620664474424528426974307878107540220939867662263529646114766953016094218577548906215482999817396941728509482609590269764549900308574293726063944235541536706416779928805852586830033311061460307369153760451517675547462507415438913192455601366045012366679763229088053514504327290649816847609994198733736100186155065014194248237219670539254915715626444488818773410869091787191205610927943631431609662253497832220341626222142099269297673845483462961552581616258317449370924083104400091981395785399321786216265894596817155479916821759830967285048308598114374926797938968050071191374641893595816009600515415524219471510574327796220174556264424200421990186227171287977034950782088387188722268289642708186657384653019280359911458883703119474739213308711883093842796375414722108411053474081746540447511063739389208480790738752201108430072971737279846564581960800050395085521482836999293181400408816779484061176398408919606932729618138538737832737701490705739064329056949545317467490074360624285274087776641182674809896229873351226200770932477242166287557432936682887329483269041057881729149772895481034466164037782433924547100423427643708271000793045482850049089874583710951798750766364967533687121558729880704252809995939778077105371892231372319463222852947497887969998629635893231853262691687491310601457207601191618420714338268166288342589165888609241174993359648720322793429021326367322376265606872753245509864791000708920612228647643538099620068058299748061973738837543638949626480122692244271588731885251734894705724284808261894913981353914358182420628506563590617040922738197607045481928543369765044833388111665789953017540345866733214356887238946613945189375551813319598116956711792983447459669482008804022276343570128996375731609516574915329625692690156729037556226464989315278651611991504574750332077741020824675440874465308472233338015193729101114577364666442813006970637976643313413778071430322674208756839502023194843059097483531824481564461114807675090193970365206884786364255373542118035067383525946965117073603706399862373312966288142715472575714779498198832465111730074262323005343667299756856054921109917826156288764341871720442871173595980483892342667246124576621586317203787880009387909175742689839221221888725336968845690100842088617847546282230242594644130894112219817130338793727180018514286272715468336218830832937928194462170304638240731852324456634439553592045022828742043072432447518706728658056780873506179568723776520206347608517223739232907558346028776566265095187898146904614120708309607037571228426792915920015358275528952683650609839241364582218794857383408009239672992795331786868134829114261747500165447735714280533937939559738034955074245252529668829889734658222061614406438240312782121044480076635227421226557131020527179882200526888510603302929469430055276115346749932648198156184274366531683657615019514360178004574118844934082009758114803915313990609132405438185503846635480459295371488065786876331768052106959767794523689017404518867446489764540537739356903079825375289485116549602280575566760050613018868601106526732886958695998715542901717560972937665229238774171139130708897510660558705351581332616621128168235705533171627235214180778627468868200957378025030137435684433500474900189608792042539944725043032866685230592381307677823104998727267802758405751635392353504158552467359508536301501419581391692801589888476038469132420004547564395004311185531522207927048483531733540896565208486679817957397259070145891995983938767915393634177638347300000986840552976309216798214244089219350833198722138148664532101734706913724455204852484928959555175841520051044567733446038940564140484435801552394288894253546255603135237599808044937168372713038170663711701856822062973183536307385337638680256495882498678542593847099144447700883590283197318387935078220875370824441785078164092078653454560023762836379497049825889464618955115099887398321619368489675606276805315770896174809651062940813256527375430979112220805290521522547720264991393607280818794986968203768972679782477468700000503572682319033561384655436077471142294383511640347182560588848654477521984071404134811305299365289255577713868596120656551305659885021622779223945639586198377701433739611376326844685322439371735576434047476623269976781627912479029527998209288603069404802833417576644175986959461863213153211320802260299216026487046279035034736668898213235608136410286360550606997376019320090033497821649837687627955537167513299165580228048237024343124508138565462719528839484369696180885599864447118188117881371990770851165458730037410672281935680317012341994763294397335320880735335874995616406292956314966628488290905199805000428568622945662579595959254132219904503610946580505382846144775764579765957362691938511052413437927007476087798380336387869147422821235124147960370203846963798026602625081711768760761433635004221398707407592164594577132399519936941152576791233235973140344322562646073390095763184620545668776839061613645128531138929828515332690527533309971461917166042936879341332834421426609251872952128178751877436651822777837789311876082365180031232190505111382214701488992296191460265644228068020884756357307736982620537636641217370736044332760538247624401955976855100006324463349293250497173084161229937510353024042851915479689712525931001598300098187800105967498513771197654003197221602777655841926449265652643549136465728024298022938740800269727961282338913765935562208205900345991487134460621884487798551461146783387444316559584933271719815641829125547304782517010594022501484877027860951550213211728045358675982077892498247677781526505984261049060090612548824120906966471403173115243841208884335443543228694468736092427626061501081344639486189159542306310333806510376914760178067128672598026948806099026624815218171406527631515677886221480797310797192332381632332464903191627915937249836447769665527555748762647360961292561896430093862209552360289953902846845322288308485197985977113600452840575733731049656001110349819790180787269698530776570328266285112534261995165092899983601601606539508625190195367353958590423375200546501355026962019197355725369406601129791900511666366036036747003669168444795240406506691019389084602688284526131902690669632041295802945190176975425202325129167203278544160174100509910500192635422197491448753082598801903685490989402346611797249237011233406498605564082640285706923630214661618420629331981377968154543926290966604137245302713894401987346190401829491898758957748864552216106062410204871526075822334419770231959387884561495256964865651836657374657880862408319756607280958567236128826878904316612441102562547314442536576225959768513412165827812445811530455999112687128381893282227013414942655635756188446104859200603300490638063507835075642517477597281178873012475910741015303827781541448885320051021617894648579575605581065460628959932352042895499871928087356704399926406584680299239734900234170955110021473245826802895531378182010326836818215206582177850387167941547979850860707464014522975516625890877986924698062275933320699747685579221493591011644611003339098039270945695259100463422014517089468580430424185720242101088748475459641671567751347697520398638557203186602144734336258377901813795346790413791518749272118843854625882921920357254516592204207495306091805903077060053225638287436059882373587374902495395455612344974099420167264201631376353841802418058756766894713764355110244774026723870290748460438023416345748376979807621876054347377255631397493652966427919023224805544350440060210551405499913331197249980323320028210973578671244837294673244030399301377301438313751927944409062798201079836060756929913450186163433290553322487711081162317826820119884417722297108966114500373051153191710231067254544553064222379567279240139632812769124523611959506285667554747482947068167157968521883011616185207919046534346005894222328563611491604157664002031461411120999305803195006574632387491292498738883066434566809207878862238768637802740567384376962470081858458498831117016615292622776818603556042544647280217334719546794779881416852535393102862415433383133695616407741653942713572600640147165450689848965584338110438718447679692066056102636440244943604012112328910157793996742309658996775309362181832589640154916834231239583873490897835477992348169792984830179124660009486055759358018790209284193183326864455932794682986558266296340228930178433537505314200933201859905438567795990560996372579920783718491859303431910928987573498456414734402944337789376950782927422287125855039208288668294709866397667871276766312082605542380222432233591998791573444283404217420543950052534198045843945877568324205441558123930167100109179745057250548130735095626811078710189843738208977310497661198370382359316379142143125322807878294788955396402442432482461049281841849691501528622721756853272201065094210290401427713859986468162063244142309619066147776752692309058789819157455492141244348963878219463680229644757024472091115117168401142124110882668693539677567667449195039782383022745087694132238461593540578739217823426302780920890795975900182726118723748255621938042799052120186317303205293969978423510526926801781964117961007102627912306074576290008083988963194875310302967852182027993558544808130143279314064548629238711636229239274171732764784452318123333027153492501120756888216180031255350196667834191530714897419285602338988407898429344505847162228636950763777365973437381599807222846772267257842814023126807033901106878899373221086116997371647937724216405810795649973073918547549269588881984813851152581734066172397498086650996272556959886954537438380830228955965012553903335665675350481350197020159322508953475185989270479871490450666404652112461195620025149510798702958714366788825587732248213892087962014501014858396380902976207644082622093513579279768997499832171096304520011940223629925008335438920341436807759563042081405566764758655202366233897586230952175589848219982638725355624885021883714496155054838128417298704538120067404886301592706605873039323075145896028297393014462772077540528279416888306160504295594116279284875540029477695131169748681940809409038613064700045061137050627345922956626981773500363662757978854515081740939938171657979723671203827206344100926870228598163609870004357257228205676343928497185424893622329890715882914948632620178637760752210931222635613238959420450985629068467521659675465205138074608744832036248419584911436351987278946384476260735804695990932845870764262406532057253276897376202435578254760411177959671870089093251654888030235483390878451692359109161019026966755241481363263726895141419123295728769548125264941505998307550812983503630744004665734558290390461751297581729770128067469216697774392157814736625407904633084999505458677928212018066208578204871915010710273820938248788848132032324276185180730359893975337701054042561958551694668246855785164048541749261425672930366998423848051381970531651019742212330829551507953694153890119193472345087210054355440470651916392655587645649745352518531966601325701976595101282861208379636277573012908505993913049424571755744059630917391418828523272429509225274788479540717050729485308034660142210238578239061413324309062798133370953058136026417817676161879323313827222118979210387714803081721269683011923133414289407527730580798810206899816817026501560757939618898274545365658845587347467486467071260640182336503588129853706784273513945388280603433569421008116597542315538286322905614223803629044987809213000347562961436595940319251729142628250577146193247231117642153203626317526305289876176384581545088530731544561780954126301294265761098290775767599249710807912520215996996183036636061020300905419723559963210313794873787206924701360330125218122982830966796644635696480412130255754625019089835330657330646451018784804759769762768670707288700492333670875209471664256287137993824472120914965219498429246878362442420914739062447293379551122944054373723552709260767741609604601919842300020930081679358669951875532548673089142505050997316282046064177156687001539618558627264693853623634665536497248771486625689553066794819820340565453975086364034377260753461022113548924068512210358374731448931081296071648791565828613597102898536164771683022745558127876210294525741022631889173204334982114436232489324416158237855534417876577475436330101766153135372343391094836323793151767683368071149409378101585815992233397709155737244935961462619471597674181548020491959274862898284296462096950109656132421276186045232112832123178778293933439287192809286705181309637747733748041698476224304633600634953073921953888932528415247707377894775124657574166872825468017324781437412855022700324247651510170946465396723954425139248475152531421796030059149578200361337441004144997488020264868582964298663824356657820280510521420456143800432892999991823988133126945651210243447311947350540549167652323094916546680324366028222744383943360712925253875316932399779085646555606190350998487213627885423138119274273261531795897539535539204302243031098909507403899404045424068915702395659679094964660429511423522013281062157678292178801806734894623836691618870573522919283310410686490365719549516608523687699674142508367292573105228915184260131638459135716123709882018784815101337962554844029135405636445008286077727211129523216233292597079523725538542641569567842141094674476014766414483283091259613581258156352162380925580466732974529966538974272476024375654007450207835774854243477031937533602069717456830484254563292507911929181595350887475571828042073141092561342681313020420864446383933629761481047725542940032558469436765004129657350111249327324463834063624781910623992737538601940115328867008818534147806340543344778392046988695012222327681532042491310747607386753309161451804731855829824229595953451889210343546898279962715752308655013862482581209578765295694874128987231828442765684760940165198005940781190050634819474068331805966663816558210338426757994831595802646506553178155962244100180440773175997629915306493831497766264291625475511104875282752184316228585236294223574648175583375250523688932757956620645241714709972119461833849485483018967753050911882008944044446723481670456335900012918862604355614338873212154232325363002802992506822302335538260293897210195852697213989978301481653770026089015596476613721751819899649039356149442661228645203638858186941795699410112121357858292013688251173101593760307284354071695804599145801459850423497651447772304663993186239652793955199092179966299012242360156356584511501799812357812665598420722880839344943483073478905903071292882125455078880195699904785730939614585337636561438719354163380800652530117663824753616721959669238138209644685529565630734814915951600007538189492803289264775600511653650836058058369853402081856115003857214864078985013722360228909889887615866012914841625100025966585379570151836709266643819779837261530887902487064047950748234562733475494015069794787237388348196214104218563712623410249957619821071518061216838466981402631313092456074418331329751558415647047681597877003513568612169380553738637526204214282472370608381630029962332924758087288935721809370981299943804292924364743353408996673302483774413909212955680070817625124743243455535805404253020952757697442480554214922898266522587440859784296419933768273032662907214079524049739902909773043302673354705415779922994969404324644973907203324519167308862243667734963720188343637886555757463754098172831355715739273396882965842380109933904022007740681714072257320048745442822094587035783712391388913761207012865255326691138346498688438716128928855696057584406197348039319426006081232893572283610127934462223449033442603016983029413606089876095912016730031892381705699871415102590102832934666461833769559229866947697302910716910313076951740554637133059770208553283192412895007954921215862236224020265703855066410401523395176870970766597447722477978017670133523291766699265006505961488753006787538911745984990590254423265666131301136761758162415304628794427617742926088435222102524826323463434677078399208004118272979770055594631381875749511663913649312282685496300387216016321523722527726551010624723546607877706976333405605399507193556414226324242708680910861548164066633781058832641488630249001357653607937888264399184621589904174976447891896627735963229912554021849384252347814208871422114935246417644078566010960233401288876657009881580810820700330449660534257480029725780191045693782000498649161894319692638781062041115548803823231757117101640406005988335979484576313220244428013451403995127242272314607690784820544117294182774926835444335047341334886527043930708194635038710939466643555994228021785145595843568418374226501436070072631005669138280357027812895748098829322449205866625858255969143263909012464158851513765761452401805045866217336765464792625716304641378446698145897952538099619973473228087020357368296585148412826406703129426600689646789463661889627578215496482069107408988019989116321368490507875915084227675816116954672350019750116137655870848571488203971719795575229168871089605193591886653978448451794514111954687614079708539667905437696821849117049133945257795758948991732428624056314585011076186587391797949833268975476973199968391560278311716054918800367478515686860491686411518519958728454832711656576264587639990945958093124899398296860317260335737261873315620265509974144934742356155176752778379662286527442769443229461490935111300295615485787764600234372688925946477016721456244074232953700453840160614328715438704869825659966186978197008266366020403296984914322354193335104712986445580732317368747929290951106448402510342758889114690485765370041275995410332665133246604613683495622042739961543217337364041358657085912996237193135857902029804583912874483797465297470006479300185236746744051125078128293468300394002390199418962541415350016576076655952061968325593719381932350717485073375409904259505370857199401853624047468978721294625170697281691658504518261317984093506936778594406993363895142952980237506699841984041705871424721083272162492322431825069701206432839002282144156640403256072145865525203183681809333810022666757761435972404228624977110651542753065109906814791926768006631855656192105254459722268664223765137291692488181050323465506302729625549291402497610490951109218137026772044576190235647447646141375858021528268276944579731187135495450802884478864038224681566872145746236775267546668106468148468857803853857506878192858959327135469301527097563913338291006796694752541160256818755234247733978033783892909018078289936908980029481395454130749126341942339357490997874803131962400488707914590562773379986383454671020357617180789690231570929915045323635256478065550892320963751727053933805691431912894773164517170940823479106528628535636516086998574655103994751921398442039056934226703283484219482891170532413032671523215249239748920611988714723885215517526120649004631862574640384540482862255772417682423381304668612306188754357928065079945120526240487764042262101283891342666675648505619287638335037917519330568566500098837324051948697450819918596196979305802857192418366643212694183669812827391416445784920188764892200819541577917365681733885738723635011078827904198474586755312867242403114540553968878296147979854732398423278321928335228484150494808804736698927724060060856742947714792251068724451676562819812686385065548142232823681049997156853257392613521568997177264043444196566919299624765285856454772681329912827242912910001298061690030251227427995202606903727688506965710414446785499090463472550018423528581804095955769257771062910506494660015931069682341600014268501816443581849579486676442908127594077678617750170592241428928681328641704649942470800859601804323356872174429632707189188726786510190830512059459174154845805887347961294278974851457573331233996217954813606463609628012599622181211430097595470425613659315886075336775115132565788212468938697121560348133028698852265600597959440080784733356321434949449767880167606858095755155417431689655085281733180345082272735525576538780582308439423977079284488405541666328113560629548886366975370840086429354700928413974008564028402431765317355383597984273290393181842911872038873560059125191193645058288830254827539496122596553564148756780595725393679916560512480825242710304389382088711822799460652864226763663455401322959411977196961383266825479078873030616488489794075525605088853903903002018682457275030269986076600665841108980241906759348247304760527305016472892639870201701188953245378628312991388432560536488830219507930680922458574252038164237685140952123154573927028055249434013886955083616136637035066062660326845565154100777678716144171412945708372355958124926668767477183610171332920655419897085785334003044792087360430091531568039726539194569973891166879944755875650394429799333071637779862050151435900237511917458454158242112242082083443314445811641135961456385569575231018704718205247137018516414109144966858352728163118536918483430488307343709977542461872709722286212570837626697517380523307738000916979026172093790738607506610431481521646126881261205458290967426285550358719305622131203220561987142917837465615202074678850109901650671106284665147788997502001278679611109635407825801686624723645475261118992605460569123257312335944358714334076358867832677178863426178120848380657746928509784861818780792966181445570794951196654418698602320989126041504870476420589769163133173772792977548577499756536440348060603644878334265735138137663341575724499126240656047847451011249028474035394865195743825925606577184947726213223979025663540829784897268230281190543265408481402198808812956833384949081317169872885538485668364092421424667302199460822284468621574340241057040681685567497042070522977880483710291238800375796262036505141747440098628243984695474954178530354318415658447479905003305880362675702532775979031418815761428722076321064584616594700698048158244227199222317509462224244566600543383987747103776508748866535411338325802047714482122502289146933613072729600835224906067988459570617305556523572630397830902528266106854287324908409481208972284832856674441290818527576459689796079590905225528783820773792939588237885250138174095102521446830285317513022024526937678335336091249882104267915311008946371902591227557285775359415148337584070217039451071115176844046614576402139399758125491045263286074584339602586659559632772556741697226057484703025713431384416360479827275058984482495230210646266289055371208535699290184017093343628403967687052937028552744053228702175386551837270990632195321653569086655583286589918555017329522981225997348847926348264754709889286151958335623024553118083862693352944214707326054155118425588321642123883928576215567584880257187485167641010854879912055463869358746165892549982193006853627553894732065216486592804631755064435153647020056744998575544662370578935399947516843812895405709720090227518768098368968893385701992578552799899094767749898561171629975000328446889674444871839571843065644953199689186517056422137372397576305910265841470638866195914743316126825262960191716746199745249652788724463834332462734238812672818747785244986999485854789296048553543879797210255899533835459758980225177968507506859760766759782993685985840760447902018343440304847394800647112344569672963003635571173351374543648762777970696794994050192763436475538511249192139998131044121803647534156514832393598497511620893412954466486824849067842449938045318904472983123858070299594788994893654516270567059406987896319297727855882163983646717101270090895963889479843651204214840342842070818104600370850397542067193296817063019125767681546595442796248206500648357212441072238132146033612041894272393163352256709069559590161421644081806222748375272015833227538813968116588360423769335914448719347505477431313306675152434131362164596709624822320557330483090608026473099780129822804957098215914587247706062233143576388689561330403968828555707998734509143723687604970449575113707635224220094838469361668884732825982213265446298773829821769403418582708292282281024560563065061863654368925572796268848183709770989171115053690350767995322729409924585000240573420912010980069056047891419482542713857718405483479217091229190811991924886960353589254447530256249319230929035922271627798267721409594339167129044232566502265093382747872007659463734447432320285685979040061315109919910040300762199195832376570089991369234366930072378015257835965441326357545213285436936427947180701505273537524664003073834086375376387168745797846659946736306449956470384432106040613691879450399617882103914286365281803870341879413399346220957833653811984915824015476577102560223232304572548933192337490369762036083855165366394147958620426210990324248865944778477369414656163293466982235007938949453098199655121792586182271351622541095446365984356745536628352225560616890478465068032524191645609587370596248565664076344511047539792059508234034983592843968641336933983150887525496638522963832320384136117759485899723231879396525539296024229606028852108624248778531056836784156544220372824620288035926274120202713120341411936893783810735450662070554236357421764306353141262524377919990738004503987528100050206125081886822570009229300363449364756748091033222833962797660087232941535097243833159978007702454298597101915991979214434146987413654801232622683246638453252560813127210776358348674559958801540597570339571661512303471157197700471890816266897373571383034584388524556795637559873872110376500357217698286403916899891295742326159861452130251917911847796298272494119217785979313146734906904471046935162490890462081500270381785546576517402559741110932368290694966956578901238385387155111249800881466480708082895890841876886480589652883167510501182451788532973069689352337647718066285306413991472671806332320028078400649013267004717978214260270062530890749809205673884066307866656685118980889954444421208192604302671110622284120574269487832381330788998546598535090179855224631621249664740431680243511524606709281677479317811708390327936729371584405161049776266036572777247612339062814856360237109965397607164058153678785352670047317320458827080711786796891186407299429034730270643397137165251138057376185549649894397698344267843007492573683178489843960791481087502556779211600365374392369817460098395699542255973073199819502077657926755090960014702623452369996725001812104236570334387315051307703449245078876412026758228084351822230185531266335538386960087846956834877058824276542141863431820337528947435589015816096051055464965241699110519659925788204397881633647702405914731222785633120916046678553274777423722605299814724162055176466665829949171816183768640749923420225074534049623257625968482949239591039191575933230886566840644806579047214137556276144803748237074456001434010732836339702184488657079225169947350103119755226433037875195562781411823426010619376197350368195614954172381457009885452478668493581054467057099143333187408730645868953935535563235698265556218778386835661084035268956578041419706882492188891404937183063370818025492228560027542951987371066921218701606567217759652357523456665219786570850364227240518378136681525397000908434950630817651156691792614441805891000927033205211531187804623382972569295767780260081035863671000233905643399326132113951242295959858020453907393970066636795054587671815041337777481047971438739143273951367120999159132750627225007031345768174722907159162185052665488061953826027560797521282489826452507136027894205563286871527372160520663612905746009034084949949624788604489448560076693455487923465870892871318971809661731901179043951266272942358642813917235430595194571406899969490854108240548298353460200587379050472958543612288179080940228081442374281526279160582616641065571543881068008631424442900579328454595295788992735080884449899736700096639231816736100012118695965416953872296651461172270838960556511875427978514045242633919753047819847692964783541601763555707458723096956308348833713735687642229655884998241869871797231910182330340356412963783629075178398220173159306997814309741832052076495609199803437144367011253356133564228349484967050453070593329723436483285660972420497276071872819180762690793221686257181504451323298505295928013342837816847779395999690670582217700398133516106534440162351016791471587631267066952025633814797968217533039789349053453206186550787317771051634377440211191278547161596592875921959873464987189848462399848617314819102511470273755494746012031154814073257140635404526351691147038035286644104473905221732170822007681508666275415392154737638245313128797497289265692955539995531684324257992876432747553411532340992531094670756070406203474280345739445714990602296356296667527653097001213108548617657394823845092004432902783507208715706236180498149410175060943905967498326672734397923201291515641722811758273543755658899682091474605699579564163172332650666867437523525437259981304841820093581239240137472265828627623490934839981886427637794174008837012984551020098936590924674706040947622509439927643620810550093353377325816032265101672327472231296992554635243301827757472818202064998656064081267411885722680295204496290860048994146447188274599905344500490368324919619605453573495593201470070152235605874945625451820472708075846429834685804976386113081222471282377454538464460505444381883983989140872640723466913190193574612456852230245243540592378217711819360056309928821091088126856741648534280328092261240307889514658251255080385695627813192437938893414678619294129059340376736544148108813225816887869730302258631628185497361766522762393896377908602766048917990278915096173831505129372352587274434918706075532466750812032534400576277957567993280274327569691573212935677192234329158834804433430830470133097521639597667007093696501368552805673782912975475719211858706781775516445150419919172580628110271335125131997157495255555327924722867219719253462463372929083726906055953532034752973827037784833484160090273152955036103915256708137183732840295116100671253413858298809809543757257509521186311457657889539339212086979438321655331215337535070104860767923595065591586706035930141140169505328993129417318517652929059843718521310261561158448365431182076226434129587405718525878388529653584467409549075935695763669842140949727613656593982759824897153810285745213322394087803830569407373117257742907770795766644603431589133235998216978253699214814516104288171064096509637387197776797020564579057151370919430116618371011424718535960227081991098825174102969848237259212253297709242130789292411094693809102778499013441606853283092240181032383355762830673855947655420564654838282063288178443265918591849696068729519233870148359851258495658865488422824023669276713839233662004995033758798591111654366219146186377486956084332142988933577538771667332842866629314983885830276258899347618216887573117687254560302486832508129484368708200020133990113929796728483040025223253694797323079907260980117424286274249098749304783608515908422197703166782724508703797002565906984913938327102158186392337985047649740489623132965076232537966908901106437975144291589590943976241025012368938829538621998182795075337646520784538435723048779984201906240658278637593579409684717868207782308719080295551787466607161716426652278229232821264328297901188704061824796452774488979671105380888011943315306244651943137646116386513995307015393630527879530646664537421206676435149450448561958644272436687200496316603464857221719616117541649827209947283799018484706646791193386979559090689229929241784749941234422954691583841972508691884990971227336417311666508370010078479584740738838077293813989916778400922822761064246639527246218211368398757077809293296267694882491668272683879479590570808671096130930040544832720441959027397263961762228733913894363435208785782073528717033292005403979920891049730522415273001414840158676919412811080051571899953657917708647754965433418165753132337051034655813118333997679053405190020979710198839100271729980422803502225265369051845405211033666081115418130754025840697382677723512584459835322048815528852093937529904831873509902164680769892479523988573606907897761973059594960369357284501945496883905758588635095726592515766118643066286541709092653927940642646299457806893103727658122135214956658299515831729678284754589120850299483421847848140951565142628226318314523120938994771515293514344071449471851680095530942189747212958894200652716028104880847425340317593231401904468291138861919576540070285683292441159520383280671800865426962429928765284174736104999022686189578244852992435882449529091337559992179091271000756368534673997049618999005119362451846546709111322204514023273622676042255599757496872485785116033950305918197929807441432437641000927879059003291706661655025330583186560283970187623101435193094786826116533253156813240813878795248529813883922856467444687624212969346834255100412439548725809377222951213249899133543111681683553270556711971522304832949495138519045459819244864143550184262400978806894572823978950427462308796610029586876179348534869065418191015033407994626657842107567831618147155710411738349300247792585246431817330043713460905570996968687804986348663290114310435483928661391020723977607153451554953535893537579980651343226534696961380795544134598560061535395406205499471938769541483588182527189405412268888339149804894015274571824792973435283210781958348243826708577161904475239259359394841100337272135173541536384963144128037328860658724398447735751913971802570672701327162580285620224582281449121412309013852883479059408896194992600724830323066321929168953364688994572340361737481881315347697688316356612202522054982627943806581432275588622190585807986860584977117401979199500168659110385795746121190466076811617704194645239916671259094420026076519915421387255151415536813059265302381517428237456420488275692701605753172115965003694563359744132233381083394952914968997603359373117520847093999779814844306961249923297725729547006786547758946176413140166113001467892396930405419231901053704107879573863218425610230499321044836575544805072255664567886155871197736954249682195646129749890834788942785856639733302807070762013100939925563690728616616857633511715839617326450557585358867211218343717948026481437803854653683827081516261236590555845297216209440798377484448990943394056816979323526756299113555644925791201011353420444428059490071216152123906444273733043769992704247472651824189314920053158299565063955443778301772798941696086205994151180979182042005963017060563234849080619270855390185869056459621970668342659015393779702084187345427446225661839413066320539585146705887876132971120685973444924121309897830644084698835372414852187238267755773267374815530298911219607722557664577599209251810358230158174623432110273511732852908659543152090195869790844808123242224775178176115789812313191269550144592321120486364762954783875576850560045738208980687865584935155436797755980642889852227302226228418325249219515337798702378517509058834133402863579011609174299117544188246028272338775466599794535951845120693810419196687773562909825943428247635563118934061092751792591241402935275287383495895910252637196780005076251857230030583938333017782536664081727964330313980425105978221049868233061359903431342061624902338887473875171992385304625743739209485236163104343139189156808259580158837454827404910776120620944564363798541369299014380732925836835882812049897202806495186629433937316735461363588397644573098612002093438255618085937025730043649809211318818290427394980788736145411215317545954156918052811055595033250295379569431295357114767171381386725916258424507700904573313584735830549949983614063599965330005619821600901207483728553543635200143044127764932070930572864959710747655537756952968938451861109017798649857791171394983563578810515220940869527719003816125199291619133872411921089515456984586278348410522833107076122355509206373208855884814486454598921180511852379734314863146071233391000350968186435763441233049533914207816349763525818455689070977461939042776658112713382577484380291150381804289000833258488771203957503016694313464176578640931614886835353687676408831211509038784016615581760288690854401842582962992680863646638986723664706220922036155335829483583477306216295507510704667450600118096365628391523954442951689727520418179695784396012913851372453112304713532212103475824477243641137558119818287860402518055229017770887507565612584443325233586830448811395321364454561356074666103747226182090756424008039210276506435424969235888331439050338024623910728933662272304864964838873233856163833839042245236581860943400851726732010547278941873863564561792887863536369530356705232060998031905837059148754173050237964991281801605101796730444183114670022641231442314345242604700956310974269877761661813836693852231020306402663232484184423045469063182522747479495532361568557413298983062215336172202786617678101825465032074294831102988489062367057616491426360496776713771151685373815601801306055995676826376658515369877748778909528936809669183861280552490807218170206123104209222978832346414328509179464581738917088862361726212374373392097206768998923247527316467983117820255489600939893146261390527364379233561596886008296420183436461307666075813162299559150983516471998474270975678306845941666944003382833622187854313399424602038098155396291176567268026933915249056278768411545963321101005905278125542903614596441383249093284696285384419283111517089979485984411353863864100069092263056326821849832520133830157046420692668201536354054808228671483007306157926364374905655984138671341106243857064225184334408595733603289482010745973353375866023807250186321809233857442315427570825218039252917575862185043630108294393388732526579003397946438478630479563167474707697993470391995076174250921805347912944464680808437677535340101231566905367426628340399148372776152904493730960249978929102643551558574181927690342455655701333159689104151056976998611204607739472031289969523563522496805871985922738556080124007659134608518152017629554281742848615290166056679306239476048585833027026556535163759684409130387002013825611091874112512031650356668858517655891005892165336274727424641615390225727892711583228161008243183567119202728468667668088976634014432794946165903225539933605503946040062138862037112292503686633530529818421361988678470419383708376759477171336748898383633821053305957487864149588512107293031471782421021843199671308807247484514627913680687987352707579469767158956855698215864934916881591238506429973160989245339559953954530320059578407907701891548394371612828991561951948757773595597995900705107197908238474238496795184951628374377626550808716047319082653022873882949886360113777604951227092725025389792112478184765613703488600032303675009653503318013643780431603560642045163051289738139345477772566995610911817200725523452531883442934981118291807431470418253648673656767463380409494838059269750502609239789532608872881525250853058818135261515719999084311614085958388859641544865156724194913453994631846940695307993178756544187711586183461128001631006359541573213315249102511822423246335116529329796062105839988218665671767270768911609229985979265332309766868985096258950935750416545564695316959064915772719491433698934398552439303562338289677175906549027508865569369924061187752683741823746298163090511771281935899513626261630191729962756336418021958802281562955709808705863955783774995619974556905162024814089554799567906600786417588935613703677730572887258268208673743258411948312979522743986300694724297598458645075882186044891140505200291069948792093142351810230090988571331552438563316490445983714780018823197988955204252261355215756985539503983121848427483863415362971647734648884196768998298934663217838163473445062767725486677063582868294708913999219062447513394304128117211358030097226260062581974543140466404873602610755353022548292032179162572426270313798693258509172472129980737080252863236771627781246034413700636981698016878363639648577235202458856161664756687292104131851855940831434437295221236221515154456149026518463069534692645996235351199381418893988073383234756569228281495993029317272525250835583479951787191211721434093904447250160116733750563961288276775626908473450666954269549330854622046287501118023637448466415278521388324761085050620566237715587260016015178893042204911577765642142734031744215545896070443157453771957820042314238662350554234943935265874346300721111908275815417423079073900812630281172510449885327399763215875047887453880588009251731143473662307089414222454053926132661244843655072666139910594923739611469047638688102779085522248776348581187481251610267571114787124168396423356459893089067349567754803313877661382229147156633181711658667584276488984920704673147132481229090411687380146615698355425387206493852255220204323616842343640694010314949672281612149975463888565207636930478310981341508630310961053846774442523101491904089094141214841092106411684135698064005945284613391210875910218478205105869763785922067271832648879304509146552998461942770745012713494918408093474705861667983848810697720774861891348314597510867241719276175938807657863782865076837458367830170041999719595172183305568289556513904246564492891910927093014875563393036326236796214529481594735549101713834679023642913054325657988942401544042735225026551275211143011749605819853542260119235164609462087010816670275358283308024171044162245753729784985053041544586294818821883651392026362760859393578124932516532970170695415180337718477033683584990191303617178913606587034208768855108425110482092646613124340154732808459776507956423849638058639972999591035770682983413958603768863416418196709624523656470079636058543863987736902208014467320976922521773870783286859714756805663920535796040461828570561445332215273779169154402899557073100419281295767114542578753217732042615060294455341706844075156836737571759519871864559183904931577135297791890324857585879436522402767923980302145670024400061749040948935503397903509782087926914562877950656266027084343495643381086456784377089491254786797396245209015988624020238350451868983586251252524173468338489958158985621743612947175917663838000877030872005348844556895461689572277338283711695062125499862171937278230752628593574612265596906339662973168459304166244795874754480705666770023844805753513516949557081075212177457302158678405888468072370555759831294808849809258457493766145202206833724782944070175111710131406022451481367936017135296411383552020943375807929135418564256674321982429448309240976366726440212479872147423904809099841749544031099929568314538635110616204383521505421065210629126896644479269624873958273971831661216663708383064674333791623149932780024158763455723466958795884890978295542975462150097028873209253273552171047964991208197215028454591253591616209223515166507885008030246941275158128342293030657605604936379556644152671513282949729011595846506955997269214765177809117582126837278923156156318737826556032561819095844991382371175322287315153102931583416583123123948334461600685655966749922633872495683702741468064123459132084789593653101193165629094719937870948929284611663402076688973861793716840771808200453208918531719860854043496269481949077157678435497872904790023896550916200164298198807022763428504677142536015272923530917912094059354820785939406371868971622304370492336503415216528630255768865217178241934817512277214393531618447746445175738758653756568657986605213588541145880316556383902551858763675413755621868572419578427641810616900232961666589811808613840649339324327839141475657557268607922438212202790048402833243215144739568957906703280353851934852065971003614543908771230781611443177169817046053034545718263894959997267739556854562055161539259860948985464236602165812664363618996850072497164592868234272445500381052668182446347018879367755529510954916956121186706101460005567799481316822195814486253761055079726133346115016456098066243184570759778213783330528131939423042985281460769861056948745418853415334172409097123164999984861214960504022508578698370600417785172767686081421671450402464529602691132511329366299939601787572022704334029949284909885449351755303252747409976270422754263717825439788576110733345053505727936907967039540263224217473603508504525546377764401668107680394191820855479095140420470057368210519297163774274018336418313233596562276755332358529263886697129088613381369787332315359107446847134386176829301662435939245037483527358956415517670202779037089302052591869778417493197835859231218848225395039996674979236612049295472166055780839103215716213291904861212642745355458164571972613572852289887728707018577758321380586920253406419263582485495722787484095762528835294746723560864968326671517767465855277823359562559284062316996946764877382611253926993868659573594584083131216106164850592291640595561790435603016812261084172081886348464192995421594905003549964820316802642449922129644728630739994294735694062799199311842000263864066804756720923076195198216319192062359780720790840653496484548899870129360405691148124616225740730978196200762708815316278243479173922712424568211517451440486200183042565289907601451522913182950227755115592176926979791865286480568134391268367815871133090772897413764405051988415763338144829088413229608351924904498276655663229100038203299369644031850788050591857251851175218219315926773150846470352764318657560097784275281082005530238672577358626876044936471783979077998451525960120674282166635842657595226045681049853657548247652598032204641146355135740509626405018818044866427744442265149832889123052237452790509098150610322537428119168599530123468184650869530413552637524159071577391620672593947418247642251511488051377812633343449372243493145539271951748631147796635834683652993135843288101271649744107476602540860142055453201637303878087964950942074222708903503700374983075001231585089638622220501956564873098245416545112807280026577186060845329082344314939487125366365896855271748648102892213763403889117372359083047890722549567052127973290852888886806772276636516759384050939980598278074281970295162824491169760104567942544918895746326063908123052009124678752135155970764358353733120214746202005819669162156107003763975187122882309871767521986093917592450379133643688312070976954180334789504384553629282207810387972650026853258376910183851810265009697355456805930315617501626306713452199174764465539997664292881707574895002070226540981790970684247226070835285603583108758016461163705705013022538942515922804594410918472856980954583892294934504993923401772389245256927131034222189875280679738946885616087924051125834471806200157925491553725255476431286679438523248976882046500852232213982717293107246763665730288412544940515089735223470787449235417583540922026135867094798733567345564687924205074200837158696119250418449777522256504562654995457204062828565699458501677180846414564614998497046924396308170194233786800729733984781256721987933133860407086963001907260288737514869828786231073444345521429455854291711154238452259481292215811223356958262651875258420200927803457974749655590918047301606329346902538026279814185278496551731881108291872538397804463174234616556119288302679575135404376648079809308207618006023550401191064122967231964460638726043514291676577024981854336208974840104480424330059908179899734422239861813538896674691393235638862714715842535447072696531862352375176690481545389803735708224316313693691375023127711979187599163432648353083407739748964447218444071296337214164520371986337992880975481758894113853872428029569857317960243337522024124286063987224933659012810784354356406588733690635556208956711755726534360753060105318943210858593025239857251659168092722088467866856897506306379924294794330714561919249551789565474117299583575903369176177829863828920514888102292931672178176217682060350393959329454030787255308229959123202595989117128063616870647777453197243403337372500679697281302655770934430430488636614826428104678209266053539482375718088477855239554993422402721037458974360389881253133190771171715553576232669800564267191601164548248069595975633640781224606482386939076200895417726529285980220804874089602501566242799537102679870274499198609151128650699932280829354156683758506144149102571540723681025054311269732637021147386587734166041149730169330378982307112114361198259476321272047269495504319030242372383331565126245394471711772022800906872160531633490270150784862166821962851846672929266761341317325393947663210523188944839915446663366200283801655527738240970054025323529924354056610987863149271330493178878822966837604519177734936504661428890470769924678331641790327130445533821126812895594247193726480760449535790795352681096502318356358227746559428247856661603498300373721296221807011665536211499938063339672334299624166693653452920014309375089779786208893211942107709575727672503740246286687588897041335681493926002311278376554945385030136159782220862251594551441221020290682797040194247670686463341912779043866875043778039351421161530167822420021219119231115885419965773838896841137779436307276397836621443420612169218324879030154349795377140004312071846474158139278197025953735957115858425735427163344922908119011694305535494641364933070517779703133018807558079331762363235420668479763546281890522083245149439647064485886642423798467339401416725967111468748235856798698568934040186734928067476140640200870237147713073476516525957408001029154295624195956561342510449435156282544495815016918486060208956220054057326506008465637431912868750606303337320643642393896643341564048011847074723756452470273463433886096637559633125104540518295068177214127306813708357023987692286444789842925079482027193843642591210420211232178245814843720206244295767064383376460926952977121775609439792721267690359155934684372414899452365385538180596515745623600827099370835590664508861104905774560950729453542102032552434520997574497956075708333668642613214705821705125112003256922096327270863641375549458643600461434248587804111597865138657773565639691328976324629732535019389845893176434300157741902817421844609228374330555368216995387390595161313741563992002460991284845734896639753587950736242228272286774065187474375349917800985038735345962295172548837520370580204199646489579622913041330175316965879873614140185121262011444788125874096806618147843046617156145469831238642399088329009329609046135604809221035713709757151860395156129643352211868488264491850617191136135768258138777180250777771673227758953049938402774648590443078678604007991254568362105229460045450468172148974828356870323447722226676040614143391023208359745168359342233883757178468787558721392614600805204073139987393660486434370852962103717373966491110314742876182955973322464857768546702661396318128526628460165036648348453965476090822341545650805600437256161258680598683027475694185425613988761742108457274625705197989736607957289748472265975074890290827933250139746510723957589570927378581127317664983842057047584497468346095857292462301215556712803502717759097466553163480837610092742946130096406319129251064014893347970013284684788806137642146260510926018122138089933700286325107947103331014952632900562749024061547001699360602600802882977689240025189365830838546806814504699847972238186247626687591339173146028416550362366059418269489648848147927800794467078054238673720688088088688289949689675105106914727143021850855267672642043372512020615753039815673034760099559562654885008824853603491058286924830843847492200068840727813172639409804392213900294730218377539640960991774228563887846754601258069272722325557384197374036512975963224979274591901464710694336169906334402609153747070962048138432049166136054940608920652224785949614807696775439906078652989045359895395759486296145501884437727929181178726162606606291123297069134439206939393065881924174365240266970227982278691616691050220403417460753594549045985164400961891349199817898591571402780301296454173073576582063306425055201796052732495817966239818654422522585855657075810085130976551560183075917069344657335833265625585196296373827701384297070335525720555387272275744182290582628748294082660994902814082522332340098927774921881166342459602252559984072435106313949078481552245492669832230283447402962424057782473666967274637022816027301090773209298621716651365139918760550853292786606832911919478472548335177764899437736405132408524236216908235691040192494912766965502168966789007216808941758307865072906061320463104346178826112154346316703324396349114247659539704463791153492297426188316645544436517410407097656630833814877721394004598730055169197801827805234151939584808106096553736576651965483898193049741905493747894578544158243151360913483015283744539144529914696651380843833047714336618300553938631192557620436892706547690050923627109918154000401032520615770766442996580904998791606357138790489448971827569451761058987675692476533085434312495849932768161279256228736940804498660424177092568910830499975409500804691330636830897839970337653377192966662234730933060713037970524805468886429143474301445836162182318051462922425474019799259558364727597652783157951400960664188260752435825710872115364248907948570039040121168710427084201737082308959978827671466062473597692242793417112955749485203803941451756573132366049238307887294378489352750529427634078521625386891072788311901680514081776164113089351184142633607220955050711588606241167887794725445155279688150623311985214691633452300169218731826476217391499709451342851856610302218867922490855680194594786971770834076152982131011910198301632099514449606031857910022048626340970391539068715199026538619779765090993841167783223918417192359590082583201795097155131002891494030254862899883821569173128122490411187693507137683664215413150787094804528414854052610750992993806587700751911816473458192382293545235284913943588283570301531790368311219446462419237788653380354934872627186708895048284141848641255386541821926069121533134461979163330798204264021330050525003541755157638925012925301837944986017379120151621711245564747819306152274001159252473608833220344877569117169892664553808765234992365480197858900765685667251683502576363620353867004999492525868243725434524385628300169918037638340972034635092921137826503998497695122348694906457120413618854181906229839684986686876871307699800320520281377515914589932336167677391749351733775289081435220624948622686515949794570549263415630258117114815644765834771411418207783631607454407697117100238706885058073157104410563747871692071426820384091012171060439345337022734469550826482689141643434803416417759767658234041335696792470932426204089577081553232376230892859540770660914188062247159049331619575416427551775272008086964825794307082269862707919018332864893137989205390926891055816729615029004893289723914542756136523048104487044054527147273174073724497591256577749675490808817238921459655951217298382136652522490448104307993398987783286755378853796886138762936179228907637551415838745929646993106592821689492627060446762053826669687461064350706946571291631384029976532827058948089310759644192805451577729224740439956386715809360340626063857982985681304342697976340893194601482735057353776995788549319797487839421537593569900910956055016367304751406895167789380359123617968352101173085949541253146827430067065930678678873082527451204245079235238985399400924939379991499430973016974209447117868790448151659784889233987606577318800353629059295935701223534977910216047166644732462416837907272397825333823693321507225693618999943098416478182875120757465684590166784620322753748676984453389808504406245603048883915556723688167530875870760726742844231512276926447005793588928666861512862291537168345179420436041194635462520082273443666740275122670473686238767635926441669651819167232570521661741103255458831185722197675250775062906710555667008678545445751624848129713813696855555795011662545187176106549368356097877061398296382749995529040428291613963508468359908278188179903563640055946452946713041998265883001614430463381901483546880638909811423791242475083085517424865593729970042561360465255218116117188016009838391541270927150769305766542923278122156489592606809623265207120171852218638276045202831322704401405391854449921786419221752131070494765919734852119189984299300700880164891112492439358512632265087869484643802218370585812710801421332191555496032335813130711394189082590560049646778952155691949976923041095372518543524782643522120934324280568426389508340898425527536745869946328325500729302672861494650111509889112220882287816012557455020153437555978291432858780511097176873305104339415123363556365281339179259167917520437146860467978902791887063552198747389473198030946442795162821872959204414799840165363349758060173487570188263298540012276077663516536656642020886549992907899356322053401497460615016618947750264473204756888066656493223264868393907183606525559903473543964035006856738442108722959169074548477658784547098968275405749756739002685408744167153005550295815628861007608985537011789649360829269757941918061765947603949701847680078987196222362979371407787859679298203181762699962720063618327358549428576293488159513606629298665220403491978707332661492310463764784175188663667284231393201048321170601246552208867909360895982875950152164507151422836172992794912465858854026809535343671714579014981915748965439682420696997037536924825123948160969880802441398312550672687896233112882447181846413815163656417142439775673740401796131490881863572435862371267536685544492913943400085459710619960526104429748448635632803650375248767131509867759646575359291851419783154719431714092522409756164364714322326394779417350611030489328806846665094650372287690507922233134680513771716989499542210491069100625046077395910112362545873945672581656174695213169623813051623708865681566870433573824620431245558170276771612358485803186033144244607917513057599665863871731045728880626842969346296983395015571484240252795003643637613997640341801261222719736124680317913554529304638328168476521829572150345887979566948839249881911909470380282986140871298906730094463643268402408661729026226012705682651405666460736722452868286001678202890248538087937044663079527217274587872511205317457392184767947757739029185366558997064393465614691639590802845111884138399966948025584191856651496121712407637202576158739794115675308362111030426012877304593646162479793201989971050964824613486650235832308012614329619719071945743598661121189897840580280114103921151311184572079369537999840719701387794593266251623970782855767601971923002129814398175274432493421962466545289280630485315796589188628851822958286036812699121344247759927791022102795985703165232405203931854981866820312869068598653300377074339538436627024882245383332541427889900767633017332781068965211055943743990475988418419797577227680238440569312348298792573386053767577308380966799015580449971589712549187965132596149010831703558769529224973865663596943763223299560306499724527084853757541957384766069563728393492021323849014636925498653914022543908974669557252060027529523372465480773356140315041470535913579387661771108496131741225158429150957343715361680085654701987099823105477923975584953014881846987947864532915145359604479227247977330819497723755930449114070632034004156101229887489470374825156231489482095219269443445633982431035104114194401398778476614965839712227972496635034188437112374563415546599350110054054930649534288048008811204392081127017942055715998503396038941889835094153957946108970834976216781158946140560411632848684980590725635011403733642804070444652437260511545953831667755921142643397041116011818987926642703688107738970981043757433631304599685128447379034604662816326494823363228383059148812072112292223670308576251547908969001606222829385895534965507422253936816926384337434244333079395906793103127353375146696866146043562767287054449906904184935153740835793283486696669966629190250667547846089126631581444125825864299286952264237906933514883913912746881418933823471200183680781011128807855320256125789783192531266939906084957959883093959110287839286098830649492156248573219611065698488781766154528734013548930034151727992699266576028146077666934648055316909325840009684379625792279112206262445777324151401046017659175997868455572413565079656223297737954367948137109224806298468045913136975279317910586517077900080017046494738900837703323950831432053440841663612107666345191565267974716466937200846872839421850448960003161687620083607167744756990613465108471852003293258264935479084015110623462879948113778979633613788534247095360095602111917012375014284085271056706279619306683716038326890366514797981280992022289449860443847436524917156530328196354790074122725257294058521849811992768680848974116123490171612020298677082837677857428818724213940111566756335853250733021726746922862629308403892407503264718121716251157252171070856679828499152864516174773543747431506756461723373085482769584004423408345557222184974311947835124345655395977769053734229381244288523138462566008862478771171877978376815752862317157604492462143488533531737860799223206382474721833599643220284111568423221711420574700158190652696380052133227248625098106075720087402951902191579302389415948199635873637330729635428800982744715444158880863335227428010827735420803666783477446574699612106608348788424539794363892592346887788633968928571646370409885839019258656297730569811079954197435510768953005574564709993839793960282045027454797106600624978111303907933882119283865452126491233891348517740648643686050806568141162507459482201082234400723009233963529355554133183089335708638061611948562737702003609170865632243564959897958878524505987959981215364641688118074824247326054166871270649430389036114604756863305120629988735517005724836550269339476546040427571660352374128272013804895331802426878808723380245571318740980105704734672161600860205289757276417108559957580382592577705223920335818471502261396572047365335151560317326792286697366808097612025052990444713300002980765497547855889506486329611135311027758510300902283082479824258386961642094978457501449700599267541356994350463918338745984430841683837372655034738605899028243895568558238615607674386274122962428641489420327140242633448772666807294335819509299126654772395302476734140316278264001894847856379189604793357300424388650155883426687551632054087816319030551736526235915981930257277221351799726545705841898907214554806983566130813579656551373297009241878845677893364527112621127386832144538349036721263622412657282563387158932838526992525213073108082461075292466916484761507531158007849310890023241967772592430030464207027483627360106665267880446313069900774224711362059663606809049158633350848467708272563240315188313818864435172128375075485781916553705272740186372404915848127926386456800475881570994171685009182750192754422472990117379360238512756795608375374584785653521133811210053518627277485765245101036600184564786219391258979382690593134171684102290468599757687752112983674973670296767650654069405962758964624846094936988944066656122362852331347700659916419737081957229659970006279026476750278963762094919421853103738368874813653612459450301479292983497682607937125913685809434342490072999298189052390283820290108557781275085027068104697929084990953445649079607591123067207047719317852162471812933408311998270821810328948325902600506806654667200288175896262931055530485282564570201739549501629856920857516755605974544717047208300587682352242295776357432858125557568672177358290556774887896732206936145443711459525148972451426941920731376262221805027414482856033497498803410714227902347495123422474939831545202540894296741643908757763742304780425838719160957298901524807632516246934148729386879343865542487661794410416161064286001462608522204707347727390629532393553566254647885998725368491358507801374467842246390899081984610549062952982846975212923988315804230325834270120145379174492939253003983124677800419324481953980345461882144989905166039912925894039784353700908433326439208066917707773688276440117143346070997107475574729955659169107376744199627797128633102891476794945810695426988960729672992665335676308400289764911078316662916069989272816031159101806788161792770808416070546901498977258820707052736619299687149594909780074833818781942129424986630202098346680797489144808300848084188824354074077096261163456736985521324692678829191709495403136352193697554016406660776261612261609049899157277226870375834809524288053860335510168445589759829973698134323060215684430942462875382799233666302133829183642072815100442247068066965750767129357709654829161703067787259604406919175771980025869480267860414235224443263393028985575434053656374091217401541151711638919791500222505783352430244528672091806602840215496745181311508420788748304082285659487192076105337569762477445332766512235046139077249719663694744020397762067829672791411006951308009975507814780885275739638483721382094551117387574655753185275020776245890686499150951995196111228377935139655402490110472616976274862444538307569905053731961765351231521564121346441822616367159128727533283984419727052934474984131798591329804285816415281425852379172986278627385775496832001045646278415995677162590428691066395570820850708526704181642239873393245260470465023502960509009790303401504699091537135384501661665266357039732772064269848064413835971443810017096190749384639147165863584507302828359661357483919102811439452733141998895116826376015805653232848342502322592759043883614137945436251468142160439956008115403642327124338317427501899260686005798195477771139664010648458398473902367956204066342700364802662100383826373008244398049772746037237158660658166738551359354662596250640133091607427625730032581551021586050509705326603506833507656084418413389794898488010831940270266232201568320115774249425532689948763896159754039792776315818879436887419774036749034682689438866660243398490959989328549960196898474706592178537022608795142925211591154117182379732995918500537757885335365498301962394907908232022433799753482768015099865894042465262633333214826938329339411507277177248741077057851494661735786910465890351156045303711132783121551975199789812961809311331447984724979253550667282832730628779459749763308236709296581293700070712367514692046533374500538848254947239573433980719111981762676858080495179454417217579550227075402588438586362630911645360620273568229332108494563121088278417149773108361218077804810412953488275250042992912913134540511250237463733727011599769742396342958522185641596708846989477995263785884486629259763395781633031473602687560575866745888612798006036493900490778757405263610629927316556179842372751196536809611669425611333751832994539958509819050777387309997555248286558058162626154240482697230558484884558895994648408369803985637251298575013466434497664037284209357538551635530818100156421129907490062112048940083896878488550831755371381657076894334776087452768242461738672217102026712005000813127258665751314745009449546705387089597829797764615967001334114665029518763413320115137225239951667875485400738860832774961142813025431683011477941464968207369490136618942027772255697435091743940854377986686320373228198399540558586003317361298012760751775683043335447090832831548564928504678043364170578632319758187638223379565726558538637659852363156879004185859693485071369297498498614342476102231593697891222384086705516769187964509618980361231959115962314790469874216460679512161108521751450074842169095921491133565211158200806771744084283035722658032206175005492330593513238629914651860948482777197405054704202149812132735383430566187908845216608553977930875550252779356787872302443239090121398839818123497986876147610686548236065352783332981004421467030939344856234088957070883598245895850901416799694551892517312951964160938207963667090024103116280299468835978083617790916575883345705017546998055491402034629229187274507969730046897773244776540337009693535162041346121011579967361955415207994895154967901995952779644021906275880266349802565938179229403075979353886866045900904960530498476193354141342425920101048151796782920393254990207391963195977694617464006420742817431666793894293078901789232140451440212985589035300772464552559249299781547798155576726375804038079779947770463939579592484589618553301254585026436758143024991035252304403328954949539358157972605948635766589617690140486759710217127828981339898153109746111588259385344883623569069586245631808664341496815014499759700501839007719679596216656305668742803961592553486296822438501100730948493437377549369348792346538494067494142411085018014386100316448255122265629715364478877979376551803535707215985325740639859754691771629002233448783804151888577030691589539956147302455292780545002454664386049045524587149896705725925812699184173012561894960834387621788394855398579274284620959591202351570359616028515325923161304261491088146836035448933735431258887678825545364881351294351236159326996670246184497456002146127155303766638307713678647645802173053395190572880894394128034429922636989307498390854036102462551587402270813027894698053774277682545113772511128837698107164694546262319687040173435099293694129510622971146574917520815612439460189136550700585213773981720024122935571294922250885546623664697007637659333049103687866857802925123832685499494259580233178256636256263049830623362645926139124879647569965347873489921698852885915175568948604678442678660599780779192028598441592819968929669969770368664156908317390597296835631049866407597617994774222585767454587470902006495896944067893948580828203679552068355301395779167560868895018469916380065885796409477074689759594328299810031248702006114614466382660966918025475848353610733487147363965679735299705865872491770298915816224199921447652137169301991793715431639677182330549576944359894610227771076202042234125905683181916315599331252168026909626894812712472764160147454089889915674439030519430673381592871918475503368263072312550089748072170576088185515261229329655713489177750368977696139257313264801141793122330103485030474892297095156396233256143749437082631211372296948400492810580205862777948633685524322258640170129271129812835012371211016337815392452615412358058225236254488224884056164225728678408213741450838673422358552652679728868010538925219552342137538480972254747520044571813883438771843386432250093864161959769474223513610786619599515915696579448985175004835725429943344707698460663251158074609383115747444352228056530710801799448527734544827168003096855249169105965869564617618576369351835306202938951039557481659359719750383200718068086367926471436331766647523466059260933079720857045916158929134010813778033358386089143763869552402224366887738808692349199146687327523657955241994268384424877876612282447815255697098946734309359076994096866830470054134820135157013803504175280249132775678964607788811401377433708114498510941559959439305614369320072404368062610361991679804669287251439855244676399159321684512290034209338702616587398220820502788306737441740181288653980517546499097112082860337633239491682307114798249153789070030275200390670569420366150040504127239900181718014520872099412002479198479203561804665820463483745788755092408517562594663222695420628984274428416878577228654974331314066074584099072142545403102339447441350928668443345839810927664971902403522293967677679067453926264337123265917757578962168723311174457797749625841110076980038988652757188841229647469228255150111407694811342916416717738343622940950295560235853918841792272176494951032062049432382994710785566183460559703991775720058514768947993403597656545044839465862086875387593079858006777270814112568248250484595805093561884340331015338624530353931793312360753638756202885675544507823173576651490709803433592383224284946289774681358322410995447292634170445649177832391397096081810296931636463330518517583517537405266023600820537901143208775295989171947133667695082672970631671183903597390954197439493609501547388746074577065772441960388446677511555644343395440979557015752402212645114886196360737540011553567605659942797349310870894043547570806995802758920499671605173554188486604461617166668074921579282257351908603963619733942470216446196672717056871304313077350578039476184311425988040297091370965694654727092422262401019612541791599582782081155716943835821397164559836856436199497240532465588933502741701312187118842174359079818057039159520406779312105740015346422391637889566608589021344432698635880339503422066716287772563552283349539624509218375400396678915531363654049722043151174253975434585841813053758337866604652395219008559197336223020042695159107171960856398703549862856090729927882719041284096829733096370013418018556803737398297539739420924869443276439530373630413188836247744751544187787595334536861407744081909280116439808710959122467332165634869778746643431467637166509598484009746588081187458518141052685984325161914388997461324482065624272725924760100768920425450847863191265536700048065276726850866597837941292522602395029604452005313349340785292740633879251800983987983869952068044666065437839103846848814577384471129898866973406587075733508556737888384296803067513722512250105996328018344695351004972331373319797609284974422807382099430488621980524804980502054244864604352417923039798056322747350442814223550975458024654074850283395689132513051359332347101307951603098708165755326577301030631605283208231808157140407900573223784675614274597433035141395578872725813142821060066370081253389026734071618480630600978351715990617276257940752435336124879458663256252583709226568480260004028426839409208399355636726640665000604442842135929888123712411090912565039695488055278125619778560175959266537679009611566185321634959147759126007683825060407101230298987529627439432581290846018782531677032081743526762768893127018015249846263867413416538473799690082053865845103244408385101431993381014599387244775726886957437973691115252613725426683268906252189075102201411466775015431483492515556569419240212572647383628253490454192224631376381767774516420460645853072163993525516608429641729865384920989527650934968140619953468514608296763075002788809066276503408921914666068707096796738998856394001896209494549962109131113555349977459432155468672274358309427199416290269262294130812009496701323741634151945529807093844321820174545770661266823648617980927600850988970645296616535504629906945374989353504726056004608872474138476540701281214659564056033126632934822579980231978463284195977708989870209704708127433805249839931045001997561940891412339449062356918228429674499765637318040087596508246147487802676218803218895683446293652320522435715828357824672863346370102396064006753328109131471049341231666669066376867261829815978129747767918414396343711764407442060864902978972629492289977941257641995477031732094758819388061980273246015106041859394867260605157179502699475985919805573360212258252137963025927429597079010799003055276164576677469754626350807733047880770981530832337889518626506411514728158006923974013216613911005246030397953605865069819152760097821196906800359162323143018834295458227869108037396930578855876289633741874997907000528538541619622385862577639454404962627510150963971343773795688739316371153467611335812398998297949700471129059323096756667672032408293187654413075035565381315824517491779653758172892724823057962637339699700995696592123234082282357291777908643349930423495544556426146262741937306588325331987555235332697104602199122111707919829262490730933775579967687949412651894314369118423158251596169192594284362928496811190254336658123914517378580902504360108667509767467748655476426593204842631406135867300898518592983163299981856152319592878958334863488755100546300421108398762009667985676511238375174817922094227048086356160664008584907076243677618962990657486787399048588000566947772875877283952969498314509279452316740665648179161764139849954814721043880686677791964975050764735462254249816715823755992828586192200554536387563601889034639701451911612333835379515481113108551455968301281243546470486897727781839080617531195119898653500249493821734797186199588250459992970504548264218937608086582236944088079124015935276442890674335608774588047550873184931929918238754551081503334703533898990765433366077826976730050286418149676172603546680217728156094592386559065105483492086850975951375953899469768863137466724130612657442590574626501108837838620930735475034643978030798711820678727521481015624883522869753822196126991022246261792978988363227927184782175032447750199677949402732597876059494608095703801656490395797693051741855821330141172374162545657819086389695786265898465888604537937052190213122779251831748492973712788711356852957457074109590734550809880124780379488589839039173153639021673154838604196001198596562893879411719935432294920054958100158684345055415616372944205324525783703146414416186693734885032794094771281879722282018839091929015054806602055515562391239127029930827232495327152960425505749276335329869800468733565836662339839787638936772751923411038370108664532517437591401669016571522274037154317406375780956735424771993892643675354917265827014517540039510518346963894023696160917450565704268542476965382879170810997448340605613215628254017771332058198542265746397336403160245185303686800852196943282424177176225679086769381838462696817688216462250059124520623919670360910816693902592127887587624050506344499963975879470127848186137045449488536399450169922566269059012559544745113158488357033603080461271376532898721960328386755880494274438625140659044991490259515524848886789138235758908981293526546361080361614486543340063724503837751791548478709443641744659727151951384751286940386269154560914168175250556260049531531672287136228514712034741616572261779888453100210217939362735472862884430256616232985985965582100287540272784123447596340278191243510957881237937073460071689579242778262768877188307426866533009459925884775141092826506501419977157640485196531752094202609081077960628888258360925924523024394678801026799866081059889394512485547812799617434073301832995739331009257997834308509307371653500197060749085459748316064424058414317281553285239556934051487618444372780338994231970464560290706612922286746523715304020047836368394873312237959883881585618115374111808923761737329302930061919300848087879495248806842822078137928188612114438798205846994938214675972856453914368945053993797888716559164096648353334414283092742732337210217238221499294475052283547994883303138751714317259970067925914639347742240370562402552015781687420499818985650761224947146500452453514665897952562669877548047573002932041087855879279598848954884296330297263542347397044142231138201936063415588591314147784634919161304892335475794076736743042310654206092083411084379684315694332347834211512778411494191328811076982814105665785943140210033924760933180020587526746060530090279648084344974135235556101132012899192469791009130754322992654883786054671736748359937610526135227701762456021809568361551276787003048602872694954935729319507112076106426068547897645743163932498586123895896015427092903412296788512426034138801604797450613371778848248689837545184936285118337053418295209236844212278356134501506984282437189040297307410646785338887246147649083911263095783378972815798952389942771379358120771451383717352507802323256250378401217508088090124064785176788959896849197719409341590670754983060329413459946338331722445607125581225495004371565354320828196707957693546535284756616890508464733174635810429551035889961654618323520936210588493077873242921650200567095562805452237437099891807430621474198002866095183686414890784529518985081378615230908619946634397056085154644523969290299980570711528929676305619106822590723002919896882031443857766463909856055301219767583444777121631098144824057333368763929669781725770208571031492475289570105477696746134585226042009817640890870879477418411683485666274189240464935142762381187365154229606304608215004589227626461800144057184456294132363053963886231077752213513587035949129054030596745864812755753780587272910964714812259540815121155798094048139659426152539787168463672009599137658632535042597869587771099291499253277965148727441369000808291879578251879738579939921737473713075177295160194482622517535381000023812416415710985809074710848239264994347033027131007175535408371037630206526253274042527291069846266510965188927340642422997743265170004949706625102678173013393752806283743482153693107450267020303629940556757659399798346882306379625006470743541499735691795732174113933644590730771837492652095799362198995225920104549623772142399487085608649874156331756890375731678838137563564564106617112822017924763625647300770011310372650223437485213312334746896473046280160556234126154536752575302586742030330074313203696298091799487070963989421638003580057682467199094339506169553562808501893176237251097450152912696995178163097590717141778366828025138834676704403480164999023625801381243429219097612332720819569615046709006613009593545386993391387760804536787642547843886074448182363834691605757676914569158875594423909581013870259594847327675866995253269681239776534208009756142880732904686994578962162073382588425335767761827449575698966236848679287328328745840780320495863284118609357210793784283419630281297858385403778306347220241327410915128726182022625707148801658832497058315684934967662594965993485000070154565177020270285270482632376213979638666071729695760373568304712815015139203098076290750255843272930714124123549853765298849509673759722788587140329320647179160444639869491450974234713844855273870249677341575068565219360431684806663517699112866153006721473215186731540907411739134322452242052534206978954344118705663044843789380348162722867618471154796575352442722467228209357034543160156226317262432835279022964440333078087253999046300987266854299186571567500477723702088431780428812297875930770420689237753622712827052810210444346693860158734265368282265854346967664785692992557746641962011914660055287167626862334913894426063730431634010116327009617693810650102663605141208766390179218438788966660362096741511999682082439722887587114299158402043953271577080018732138269738593651010771506148278672839519421089052571751202454131470350256348981341951407681706165691048701506160376807417060168185406365266064512707054942893501449252715193775138227996426204432267767896892196168570513194926539236453219320203788145565863496695768235117380137305989871913977181227897004753064175386458183597701608105454142699543022867523010992454524596081729535851880797193689233775837496723006873937087375189121077708110264091494331763867395494618322297091395914594731838428227047869658200834071537128731198991256622045880288938370810708672171399457989367256590872216203079862218725808826350890046840091603203517700219919352148938777900262553254857445508569033176373214869523715542201683417494843236711249455751258553839270381117705019016786025871166953921914510158547999741264863280633927668217983365615011536101232371451182502293320587515155751665192167182027221950347435336207369599198909150012848973000207009620342685175391795988322748703671619196534938203723866744280957348906251041841518241610604423558087361543354123236484529041467385271558493348231712805323637123154881360101961902355050547432186641241198098431674628138086237743305745019501277669296954521241850590022559250980504476717835130179561560568837129896517123453409330040466303901376149506859515909000437176148471299847354363220704746847053105187729375320695859541856566904346545216104783343821731735837116263941102396694870956248520082501912919466867166346341266429784950479404430936922974372687732805849512005697187020209061168530287138552247173149528518957328749179053991890973930754218277807481997525129799472736934053988143689512937032490886524916512575121312184053689930468034169606323719215522524262999134362623609227862278712093001280578579234994906083321544052292068720305624735693912022327094989355143586117699305107677822571770554163487337580592055922063080950461777896371683005328897093844818563052549038668603668307851640200820294344097445580036037652426435004594031425605407541073522276027508744883521806192742528525684617877385048826308289219363186809795110626169668682380627297630152289360383503805661450075672163208080800775136695829542490558686530999610040437466237712831644981710286259284171049187174215075292950242482783841885251867313455750840746840564911185238987486460083562806909420653820604981245632052248831687966901868096575184671420215290305324309606876161066583210551251564703151338005973567970055027179855491083125215658649981905657509786866779342101932818612797546205631711519764727755749052104861445828111935948601263458688379870847711834295260188327506091435054149422488594702786218265961234802647440659372853171109106066606383179713067065563547990839556719388446700317784465938155540063381007290752532477950146164246929881455811487934357949012403182417905407500542652012753436416059471891307530336326932435110156726955380452735124609644477106554594908284838456248710148659449541149795202468075266795276290143596049008510918425574219055765753563608889501596277235241958117587897730201001436443599068581944088511728647925554907468030873765259718312001083363081030782266003270537956214797324238090079474079500799941842300468457123909629654332433930817723788494651615638794696083431800034337247568275583872430113691763670430519793815313053051668995710870509408865861998098234828732200072799586914896326427556022879352105215587561416021455593808159662065198657830828170383557996469322040931638236606130102852525286784492992212613244652038870022914251718412456504090838924786858152408224752527197054361652643143509541063224906599212255997127489730016116973889384677882286808992991647566402107526717329760824987640583330167592682167935662111557602616536539828929355757522306927653502196328165504043462666073733036497635278783093973058398686068872075992471601860199358859455676081496442836863996288078721416688610790489552218215931229353718290042238478146529299897683529213163014653886885519938842776299472315304882447332419573329262861215573167843300392125083682113061800178752731585599926004597017723572915927936555763041070103267753721865291569857188415930752693913321615502213317385497384271911965744343513812034927674475569426671813370602358974382936110940893633212726911582226922695065784714292345609568499645131096681175013263076269096354967123812296142603568118888320423754198488839480375437699790251120421628260845485853834291354408893318996807689596143538294887124100911011045719607919777956393080201864316921006884404555869473913985330428646914063957860364902602770072853490456766221260937514449541923498165757630903660979554543747526660901833682718857039040446175025985048269429164241547454365847568386542357476095475623627934893140462023179358237716263751801873931300554563297916543009016632204575896872971440791932770957931025205665475342541172429315623668043826190721334594702665527290638138706861350654534991093257137801810072361843961194804780000832007392580201699008393739916698648668758971588220721749407762916720936504192906932180488826370013137037259749518836921855906520586255309731917558281280831044876780403756485665515673254930313871936961485166494989430549694260533471807059804038851611253309666404068722319074681399436619717120721922511785448756412507722934585138125368682390705265751366081403486624947849784426674762233383412202146711462934692483886672672346988599312430670892985986800887537669321127905564889221791883216579502628429034490891891521970719996371162449190823573485854527000958554192080287183395891832315058173329442750365965342354987053806455588063105999338051491930137662567252213730460353081617198269341096763588137277318542136397062997982554829505485271305653715282195296606555270002513450442645470000376418796990942149592906753385003653975235419866690552634489577057126462216705524883210750507006536735172892062991776302762159603432121063992907676895472925362690562388124270366153277827659772449140247352572253301062079096281250695864317171547575174183526490962273974667166120142131378646985749252680002432748076731407053543641944013093728131932629783903964388828118569411195253206429628344861070144181606722386750861807337549027980738640480866071327482725763797020439442338136379703184906784759484467749376800338064988554444765673329708446074514794773777255547976644037391920059370068928366552580634829600953989412029360998972281943581875723122401875976317352094134669958155850102495860911684705480265929760829701907324277201246814241939759840168878986725077467306337215841350507509905251031847933804877518746881835784333746955599913530073317601235425510779753658827854192695768655148211620400610924739658988714603760330575111269375296255452873226362405720731252107195778065614108896761225490055875251142157101132699093580043686451809522719764145645657234126512725803633341782024641414162855708699012723141659320209398682214549989016633193039726521280770423766967486495646502540034349979358513836725455513864306759224050624546238136134027976413409324961412369688699602468561844199935948770697618132444270257665626486922720054187388206827187826450275117028307752898987648863950632525324089567888897964688056880235227704901453826719291467429934033022394524897276190722786488046879626022516202523247218187829891705013782519038318857927607019461579383664347636603683551572615323781411063992616849979698251875771467246954989988395281085444182940502014153588542311384500980718511209188567935426132303788857672730685870608400072199099748248120679103006367697229076628912792707435343617722107700714483877795011927120064989876943443569853108989140688399856526892362467253262106957614137931246320912274231671714262752645668818313093219309048150764641168432964249560816543008786481240249488656113591581940778229963895007438090697722007671663012045406748917940360327628712939779413424260912554322667179752039027036024673352191911972452065618078585831938364492766792737739474418553327025076925633583264300812565285215096482962995966749398905802938362686130288192790161690996016986991184618845114564135433333371206769337050805348602566302016947585571283069943994303624995341414969197443475796717623628214480505268470096828919112785281906199891103870461151452347180107988884016220244971805358932736230721780905072659154234523844012623829844639548375960157337865891260205687232704593788558726905738821891918301666600325422487342107656678752471795690127888545713399233553209004822095630921168595134934518220848557774871913593961175607048977188838981994699544331996567728042223727971369094228246569528136965869345992621490829499085857669031732759299048161447316343226524735655513987753722179561040135897133813062383951592650846179390577878577689534392515869307798700064610450371054563948065721239370558875190529888805530879474942282340060284660387030126816175881168918496017764481541824629008095339636088798553524392273020900992525146000706388924766794226908875697255718437894269879381843425674872827352971166541603399450749234859321971933958377978218762468856364298885713086920184035931851425071317703062742828558690153035994524161446062460414493356256252858796763317998936475981257489696291814946609070179504536709126355311622781709236436428671865670565398804479566780134105356832018677881404708129154506601941646333544346457048297726805318389068524120133853167586836495793012752022618558598765174664720641907415028189151486498391376384935392560883424021813496803825416217845748661343079982576878872419164135148121601909643305189658608028516886051638908339450245019381244535246666387532332870980168014957847105249301718495293462223135418997884924817261984223292743574749646805840201981821598613341947328190397523223123296294662083031441705554520411047357380235807072393219747579908846613527125901350106143893874802490671704953388512342789774109767531467418726540198775725364284913505423699283464735908836009273981252978331629631195237691090425047183572363812323845255999961516351740090671561021514291711729219916606664547888452603263255776902347470797302442731788721956891687937119849135902216351920090176238181505103855426084651499061822429417367491229795675756701433606692424404367454069337674792120657963464363758681158376583155695991925017933716372432123349769649580352584119718066199858580144252481258919911497724187591766006810277099100047829575454416293026262494137713838276084116607963054017570000795075830397823723059593453906290500790757482079627995584329720362981461809331008910214746942256691075749474149365124991032752667011993462644840744534514108402440398808215068445441455319187252227491614165086586204351456046542555149619876920556650585810181277017346071623794237108446947616629096197946985125385531185803377394186521851688485188440810526474622314207733665695284563814113544814982513946178747294407268360347803254771159410447714336310874844223718284343473838460315969111417076011441435772965310441452479093408493016147202134313599921709113495522088599828631036779814748577661086033913606896581913283637932894762477511719851797348531695239617798476369183360840224963954486945686993208709759452099936052885781419834605020858923619052251861899830423407199913606982446144803824278857627722957773342180428160231292823865135662851216617784090813530192310868270463315267637507090760133499726200170750774498106536920661761591941183556268896302458930622584198299810360991663020422351801018207451985921421927974127164445100596247317107540358602865872674274957400691798997548391905201094305528680978513870128984505815021632520915181636566716643859058655527872112421874237458614016379507770154274459485081446408117990002482017968079988041877060410852456144497829993578259325794542165490220194131079303533879393980643419537184187594434814076377661178480704075583200794035686312403705960883825459339276997331588240147650095991860315314852176980274218178113863073713308412725953627318904089339796865160249355817528495163711796468657103173364841187199132865121919795177157478273587691191808422340315784780287177003839767314797508847733886578308283128467313134325289703863704802745242005950140771181432652850674227244880753241795301820733860399856725693403505182252818484867823709186910334649848255753856478785094559592259434211217921253805822905615821163806761662574146836376933947648720755431789609472022892820822318356287545703418255142118088480378759180559581277972254679539492879151830449064162013620046432413054266555087193035910518961030585495968797455002821361042325004378470568726765488474907821154113361841570192339372392138180258799873513306684168480689884961137845093077743387614934109430106320884422799515373030908388978645681054526556899299846547410619604629188708940658672730907273949325710114878079506066696260883022111288358400694852115615155457134550062346196363335137145682195678759807275424963364491232416447417703446900224665730333018316339590973482478382788050816020411113353603302753828240201821828827145683509070605094092074254775120606327413636264714575921693237514581342839623742621788923958791630191857708369344035039453388092346182992743063968611148957993154198070164412416395445284719375950275329131525819395586302314165460392350672146101134336043824591081022276627472465130177812868788181653523653384020198346108910406454118472999420086751283598277088184871505997420854310940368928177573224224736119415470669865527935488860393907345172655732723745932262058483137142019567351662665185955926094471235017326337704323766503358099256504327218595715424177842695873419715126492893639531010395357007205685289872070511039982131062645249817958820654531239439653927766837643540402163799804290136076896802370992111348048255799562370505773581914652314603333846848005037928265872443106702280843257181547909898035331295895387601569815555648101866940315191542592208518310183803818764990513372862362430600274490487529315571524362266393347958503970789629340822144329793211569068010342767233386605841382149722554643546056080319764266585200898938150310210210926815798920407746305695205858637027616549476699514063267283672859241246977430982528445431294518229299297641990828395073381276923116933284678551502727099905803116767259961860179497432181083697159543486495551402686000484758525204895737482217863736824756252895829857493482444371416971852727053687807427372651960984616979596702493710924992235231005103686519563460647349602635204847468405657888595476354689878051888866896597484666045197471017101579571728390549600032544078446440212388953802476252328100820438613255935697480198199606971830512482718588469683836134955659223682826791757944269605531195855206537613028214602141824654421103301012390333167955830836094837194967447876985599123366063062167446705459901860390861215875935505471183705356774426740243950649279334950449055544985505561180890709010893889257491920759736570909088865895886253108392150133871334386723976244170100905201717933925330322845958412822313863971257035816070648287852321760271557378402189773618953015327863779274382360386306185096774703539991022257496157898496261960893354283598958372395711649146579426024321484582302586962943942829523534071141483838718469752747992591680158463578594001124065939430637057675693595480872152159590052230303973437886684921835362981270418009207039641633548890744719095092220995809022911982228548121827186510190896430187288377002041781525998566977990760933698683864880217937649130694326714355089657552470224728274149242778542867084750279015475111426906817582654778475122875071112831335964803729655618953584091506007938029152311819239897572381854700086111429736480633699502551293526275587232656690846315753256251811302442101370099671062707894166206853442584065311055195764842673382965338985306871018946873080375449808590228923405020639270728796788166803221402517246404219260861226214203596811687945505478888914977880887249798093829896920437339388168402649022793279172407068306775537854414576231937075477369613242738815152658775578593056639303974757890348379410047423517007530426630788555224717841326197018730387827388250369969435232190044877218608669060433075818024670340733974946463137603091259825183999021138893672445365779531096108339947136971778205891207691135410880967609188696537911369911429007388531268102899388942585150236396770232926404395106593693688327539859695992587117304088279120589525492489966099992212362036691852508679341183696139414560053907444813687135595472458047904033960765589567202322370751625024617405464773596206052427645320493047743473837674376311721072133462037571341246780810613272500331425187307681217590035376846610145636442625890174313845373665584923336079269536645612745679586539352541529147865385016226205647156516885133643428123221324890665470476218315645351103208229857323729194155147786434613839102669595763995356084837927034384924575540252535623903925785029787198011722415262047018448978216786130378692351857382751742091136541779182495269455370072624984356920295143066904544908977516990638920242301556498820047377862945729553826629995791786129031221612443758923158573712932665248124586065382022672391624839501160726378066034641660240284995242562397344559121045127591234244966111837860624290577377523005259313904946673756840191130293339413422830140446369197836581558221259221236418290549406666846596902253962573441243574710368307543663598717192814972316019163853167291744871130155427109678283027163007422573810695239902099955673950500344734301263836214813643732445751158174895074801083964592348738223853963559663078733221380821301781857530261144961381758761743402083747821536457773912835709012448319043296235715875913167097163466889062272934826970540038745286263251855654738045921613553571357699556628451792340697696809074705933033251819497076191498101012165592874030842383969034606824411897237486751322525770651473118472534011731681253356075002855832179395317882156866093971600501079979307872457537889908942978146230436861000247310925908133462082224812231047041229820826414139662981402669140177869232088161804820533056761379841290312936775603024334308182181193550754463332839335406262925247314039130720800800796060917914746091480299404743295907495341560020416802645284146334654251935268836345304936901706325020060264678957671953899581828094655734294386387095639428955332066103825103245956695120699786796409937383428871587455428300750345453199002187351176358954206791954048734687770212670860225490836224069696326757103793487312196355954747198919796924084963920132687017992819265390733869085374573192253591732860737376409832487950968047534794936624134676215165775767847072092119003890465288538195170040506358332293857168363652587935317740204000400989119072535830721596927649027614599077238543651696272392694530612051270674729217503302598718341059771805773918913028922662062757507589594731663492993949161574160959252855933677704248402216590075254056295825565429341946141017124808311111798279946602556692787261719029184655501624575832014278568612634856753333942388443453875231693861842238036635778067838230164456815019265163241856317444624928808187834208005991879322420102759779248232664980046484074187196432101659040739257083194436090348049844137390939875231186153911749173702750248507462190800147152404157509186817907781848257490654680089346027376612684884771410752899334139046045297241114544006389116474638974373977197947190939510581315849050427058247649721870136716137261801466303656874414850607437960750553222570532506883749035720238558619674191984695661190093606521271936538829977008852014031522141416152059944493269025384907867072805828544183518571213420781338339826068437693184678619265907451203514194287328172492185605202700356383650373493866713296719010815220186373455069378678550981797254389578913217395325818540595235792466029442151153532285808926786229803575733937473333803279760143632203133681641866305552318921911942490352550672976996346160482914432473750212096221486690233019187396742509527542202331271219529789399692906404633706239898867432038062219495811469974456082378572166770509516542291858944033253558154604671456288590994238240113275578097153033313924602677746964539775416023216331427942825595368004393282883617195672239166314665454359146865178267448122762702937252195740378733019160456067639391473085740438830879571639065949940563621325782054092308392456912525857471133294079653886422639974759031598180720119561014106152952154036703714487859674678944281170818033924811628446491490788917720020022649156395553931173515027261050714432059349209973135487850076776751057115328492045654393941766497136725342330239138413439885206758173060826416101551780381990971519784279937813333417833229662360005032364139527869005594004820262314737959129790533404435415091749257121343260481720477135623674497866937612382190425124189698586331336140903537339762313307401356801130816457131300713231889332318413200221399187674055482807176226954877625961953048201163309778443801934746815705136413254908652606756676292609891285191761582667208543517612480517008715554702748120300563989696759106716761005061937691506816412777456502761120703249310477652934369638027238477386231813924049881603975341996565620401293943407667349057829418554142054876223457281129448794845676198143299691481686667081917151824338623764934439431381158644276377622410947700092736655710405047534447551901230466143377142686840885991470961985983455792577430047801334109027037715569753428332820506338108701307712332282940385863650915702382910894499061267345554854141389447410019345475321346931241213831138722412873603666020939764707695203714360168842812099584524938812428529962926167056739359833211199224929955024558811378348650618907058657424364550859870514085229253590868781092475868746152260246442956202566856473622910307339233551056527278530114021956844677780266268559533501763137688762040696855516403784998757120834729978699046549373227023760009604811377897692131450119799435707718732783055261425991634981570629382442811289841983384300284106020887871772229175211352848615410640814004108953028058072670229087781400567898853232526284935373345277901991552612641116631766608421130005626785803998639144804371011973019401762851797097507868663482933452225132698472424946491808020541381326356719097341911669202622405761020715734270917950555259760994433208803740751060391673536538491128254834229795437555639136125594314226884977366329496940124862745298989024832307849334139127534093029635300065545476712486525525275701572742524367446225226622262149650904556293329369424854806459873581614053874188176016860272067457469554836965930574465533353184937936963804429805157002254705136214640734212471211711044827573595958150373157769308162043578257210025866112471979626291331221570040151002636379012034465047952929451536322129453638497919067738875895188674366911169114028723215859307953570717505997034403567053341992368767962551756577412491058004005452258587822887124291520901788482412254545324695023757306018296130709009526859152265966252995347995793314534522936539172684857217438032832671940889068986929096297744786404647255799654274347445617546602220812456280725683815878845272581592895207557782335893586861961208620657044350639816194769163032830990054878182593208569160789787062864080629032339898408503336163551174399527989960327035724467061283441712843322224129251390840177340594364614528585640143204894510489905289278012821191152925372396653738478964013661449890447299196676841678253359092037947452535070414993494111674961059951444977476637208382409274930348545198545005621371168306770511496362214512287400209526772767216096746365419307142616945634785230508870571887397554471433356233743146397668689678420975631674438617571018689283518584633065899073270797911052326788632241410117167228116983007866706673355492319550503752164161298345967615378697613240784375818753141445624744630127616691935409486101267291229385019885054123997386275621587468845285963852775127993539969531929530838198355061556991948286486216106860618542493954308466736170305914698780034899093401018981340961070492061664885343804464085330234005936891427483197321806603631743554201290939025810268186281721519002669758907523955464866670899741508847864275533670097112803217522597067518007618109529382064051839245479545707294780426366775967048442617247899123657149477348459098845149596634494026535252787689229159618360224553382770657227214888024163743761689258581497718633068533788552062370827827560486462156776624703805096557928680744630036252633992717234510020469270065463358278659739725037045222119381672834044659060668038924126976595284437045451086164896234898301623670972185787314798802229198876981373905817976853432287286593842756536701587123346410488423062153028616501651416020159378911922167058363807777298760900564173855036596112298869643926086674544942967761312270747463212536825768030442074601061896356509915046916358354401659353593693580096630535256036679562611608766629613671866553425590256011532454690460907880283431361943234115153188857578004973594349079656342737216846750638322525014351933155963914608678267992871146179255361994219117298262146854178716801689163759436503051297586317341072106164892540303878248152373897853127620075857713514602723755825939650006896516397351272708458070806945443076515839675895093993117096363347085559683488348296700417370696541385919526987520935289574163244454933212467710428087649026124959543529663931045063243985437947135651822132958441063004768978960721525287692179893024767441137812622639946384961013256145760794806855968718055057647006922968101238870789302942531020860586977311168164677257301721327907529193361865959069725298591869546272554122266703364286147205869779314197151233129212492588746333087149902387970972356450097047158097918749203417761423111690662015482093213312456884042679444388538649746866447069240512850391076211632163414686651399390653088259574948181372004908774369128320757474394446879224027921566528920620858632833311897051778047526260014417787818020467710869103345320675870752102584562937998460250054714165928795645012956839541621085915130473872628604160767567596548366842463881309807298609445575674249586748879734582915002794247176728003939521804911125980930754926657257053155970031641700571004047395420093847308314770761167974518170132138154752328326310250674138183629946823825239854690773789050570748806408000261318139408819522560919126915565274620621514607719310346169792788818678186719397002225267860986933329532695674178065120234601863286872180882991122424643065197827058903645046705150105955741839072028596098157899594562013062252714894203526955784037643482828900362039648013513777604163197325933791713452417420947608861914489547988157926010092716996700173807126020843065567141795806507307790087764577521111628944828793409895167180670671558788913457474185235371809634714880854544107984630820229466908356947890496733044639356536887399692022777250990287457796957937618512092388351601752146635770943275888668850073330095887193169480343266308628712823028141330325668633941521313619100994907273483097959201507362462367856651852959345616055776133264016354352588603845225766261026324771076868379004915066430104215258168283649269078697443238292645871792191952978898344791469610384840978452146076895323090647852287732564252448462575185513550363741901738709250097648825858913029144311386490055050813801433258200533297783241146524342174397468490707187243634609412533854650715050275544516536821081712037683964150776284969191631475605854713398215197284980362536010771585440799777813159718917640190161727848810848352349492054236738028721544134440544690152523557663492462540377915045550245405309745595452243524524545337479159119885615791848935063125459584560792074509457035330431942125887330653920553128538036651179532145274506276364736699290429809487414582523739999931340361034964511772877561683366939565131974613432569408263256680302368751282497517714602431006570180135068630850902350350937745179731225754910782048099835226352984611857743100539719550820167164262062172758696455363409385213733816639638649756102716745677483983589526141670922644719553315552570786901133943431619706645161225690133890685131934100404061221607936802975053975335385426739544509438374727497396554623144597999150363873675733755164681217163156362112152451519957747557259812811555198641800474944151550641438903094104175418288363077366200137964507931196693556853323851465279426510831558806583761475637084784170432338545849661042331709672410361748593816660726878628848101949848075191575123172966225456505205601694185936172884768075462549018642570257137302937399834034181866778696388789794777431563705095107233833713241720980216797737730354557197086267787821252633501761063307480297590219084326767424622681559066185774539964353214247186679471900755956175995635202447473748597631528394177987197192534478107356260509004426694045619396047093957471764157708231094411583525980920435055430973614981841693731657490697371651295011923391268927842273313059204578049950088339168443863038769019976767172769251481473937400150207728898022233884497026392316982368809297340604000929538544292501495270978923731056150264051116499290281914700282196779227360046147838357805486804780043963768158112340745897046711681562831017151894394594679645455289016839549872377696610448327583429117625340818940543928149795327961963299176283084623837740044968657815311163052276863336513594756982136384414278292272055524238723372368616617623121645230622638291721816987447407918704967604308901249062979595262663460497130987902322645632053587735274617612985737042683066378238751438231939348547667421961916020969986442280988198016091003161674058952463126669528462356776174879571329932492834000582851064406426782349428344983127235149423228724719032833128508161665268053884364953934287798437707560030071686615110097715810120552042775560497099627864418191515056112347632152235745917009335956159488018919357967850203827975120906187560245152202346693337158304853925537554462481115305783935065322145246486942761866629376966906147801191727220679609648973761392292165361522292461462069303474472344662866594698226499692378406732532417581712379813706335036868529417828156689257315753997682915389820992955913952721554854192635435059285425576501190707392570516212817019086898056065175204796448919006558467705421226818974065415809526160531669853164458460769416303028035066487911597221792974215630470479110074676358335129959827730107889693443378676105062115808812704183902946216236668887031710522662930375161786884847240133534081143912421159989214080560553134228080089766290106662313316603487778541781617140032110672392116159643705012004462114557692155211130864225232569905585640734642221469628822454316488248910075232200715577892854837817753283485573399091860698579731512377165224976943421295230383654770189035691703326125730303906401165841456346319475201962463424669607754391323371607641619093104614760794256076223389508394409695823417910957759864838070736783560254530408055500835855001094083355089544449186525851834550355495681654760388599206987734164099275535210436198522464431814996548874601624860034213831637669538751534432711538233881096551561649778476277174557360756107633236810121392697410391142787298073394933999458008971189951307456663571842735508063487896919060934632770995985674678466837260369641896697488113156299837905230818463775164172458589000532058791136581321647482654963391156660957244259263971127361560231985290247502391121210051266368893831659799429148679855700035360763835840211094345603162360934359946956678891701339920765791359783856053581865370614876985650890995817274120467228466755499699056218920994189721159224017020019257276418999833679759287737336290467422615897633879319133219561615983193435887770891959595740361904471568822540502638050296981480976326872415682578719712905653802045315759861967520613239910790547812971904266058459552807059593175153459429748681128780650615667960911073357482660387148213318969190541788865862590678443735116882196042170327893097532469943773789077141496747724061320145400815314709084431196279631093531287912066925877659220399646766212958522111041802993112317260064694589304592192949175556423469578473665062699655143263486145861965485052838770651349376846701489013171025589449033696090908550052973343706595442045821734281862766004504705264501962240521523378439151073410903211579559107561243232257378902493445479974997919794388719502680946336725046543054443263218368429643173418737363640797279675722312592925015751101897935758819111072035183746546265683558994465868009681482198041599849109166465380314685083091030848314517790676406656478933003634633671588523075953001512198713772226186957883706079988095259727423163959371891014442841107520978011987239008672214472656586972344921036007433451409679407129694363403067510060861102635287483895277454213763411362628516432798534518407086804664872430177532331002296560027744413226790869970642123424724653166817248432551624695248297190154997365051858275147420138585812075419225188323767661487541511644875102602257147433783807046765018055910260772178276488989037394166847380185153691746538098911656256096243361129099597060350183056067037539183211450853262839732384576902321282197996797944111071280489530987907363426071690555543131518094039364104339378540577605612286031282965741812780538622799586627044067652770202353980242407077017008754242195172984470649334904751763407866804525109204838585321072765615364624006908148901811493996775257270808343282185243396198699760979963636433345167856505544665053878047295939279483635118185172264936719000964013834628038634100545777484072222585867763074567025663525109387055111320180841091526266863529292154150590047173341032390586884612530402574817711074167944085446975743303073815414803214315934714484427431958915198538253252253325281916005190963564016163561552611208718101984008703279129116144954902066495919129832340819396398331797221527433859312115579294547881418730584938382163082613750945344963214092778807163608630335709874278791970957881027730612095489543702600351725631235325976704112275190939170191246398244675624031257326096993076771368417847862732941721686508908100189114269787042132475275627646339629624981411944298710578577631546140361946939691672083195415217995635156085781563703069739035614654487757179210593741168594339293765772317350320554968621934108502990058869128909002916552055330691501398389581984934133858809443358390999908935120701929463170176099565297614476457163742768843156933575832352166296455006004552817947937548909069755239574075439506012159900485117295326293711606010702023763267897374064741242249021672445965812615132776021631253360486495828010560280608601311625130479793740867551334136260209155521633346857508827089574164719440546840719038605036008938009235905990780556548398486137422044775721732140857311956772815397122091241394434205758028884559435321891204472147026033696836743678620097759503566850848284888029378692747270577883264434996836221483822953386826560236621453949195540430686142323529306823682021073813765612723295686762802598948159512604437668522663860074775124820299712461602300048716567856057962150704892387611921987569307534990830011824706261071785260541438135442881992546884913549015929530575147764472306003032886596146164641994076880151844113977364259526276049308017574324932568710396817651635484899993312152398251830287035665579019028933047249254819513195478293344313955397482406534840368053228553540134773921916595365930436198159018685961488340283673488234134872963194482674429554832313259954493915416605589760574542825618820660135558599807860430617349831551608081903952160357053505596787038999316118470311967486916390588463313957104167954996561402891668325979084097037167337639075362903430139849541138412195519009859559033956830623029608143660661327631014699603871755950730209243504519509834671187371049266135266646194697416143606877266932643297661945366780088663414613413031685809763770384457638509588720444347480200327622877075231020584890094776174490521487602291237162776838975480867853548468631226560727222669829085165244082004474497265679532012626361191087123375012057889193683400637952375649850081005101478567089654005408702974975898168875769879965600204866286668311236909912029170180040228466193893208570848299366360866439990165512708927016326527512022762847199404156286982329539033643400982237043673308026850840575056565124042216310654184493678618504900865730775324614717238309443962963231724502786620419491704453118494019955540238698378302394200328292636761561052182795262393554282164677831435377341187211463925394621315930991706415581767957633719854963343939502179393172178014751372511467568619593682286761017511364007576239300285453116394168639231906933669199195561242145744522388628959208758569377242550782656061403423835405932043319262062055024755144993529602362615536199906156052998897444123743471495088299536976934190760182764429182213292087219225872767885704515097502407315373581540467513395272933825493977570178030993230497570829577809036058457274532529488039492169026278786520672030489853675684152403619897863927841468717936850662387359575296610413828443738772401039827635088194128717714247381402558579223818740764046665754988974775176980113266761942373690201606353758335143289867639502565300247690573622650055366521518608405943546725542666952191654935167083513241660653605128257719379486132420432837797301822740109406849487966918514303269407837511953907121532029756140352362019994178227419102561149253577814000531823175726188193519266512631455849651160263330622905107222066839049887597457479603417004595564441430018711295192791501726925235759982226673907662811008952153650063624919066685309378788266039171074562105350156984946284700994920371542796935810346204826109722196657492463165274693754671363660806119644603741544571363560780121200132873150425158588213416122629841289505762999029097321647340495698738007469083625756128848008349998719460544326916124421551183487988475272555457231713979567017462016779606226669019446944272495440403625860153054277734879853330206541091643212400802178905162834536211226615470492278496569022925771258150039358752351870365988301397481935083201107587464621243333559750676368032055271090311014658053843909014146980449952390863824071042734704797722866116407437575388759426299190529907498304792547098194205657744615916688035108493396024525989323036891290810358070198060717303781723787842930367552096935223694542467442544157493920931235438745007366801724377661431847537716537698887523964670284071089309179667424864706520489259868616083526998526583855236479973629553861104039719818315334763371678480981705804366847816442175127128824712632674332098086207280571795558957720496727671925379039134260136922535953807118708485487188771990643673892497642701424765226146046913672215944766607850537127515083597161125060543994986813725436264892120606634574788868275036523205677530676795102988909516394474761587188119706098000613881142721541441067050710624550748984204247353897105579766821393201914047410358499451759965106442335062085620486920454014878762606861358530744630643660796904199991620301380536657615353884095059866727320810581192080469320360184981925417490754023465134102231043834413509296061304606279772796342407319387092982844565637907938752940332955591273090191004874995365088856690867322365202241345721102971165109164680405231384532056382922196304937796028661155540117924733019298979055274811571096700774763294555022119593174178697431804476887421196819523589669423637206660402932784893755485801591464309842775395749003954685462223879569736582350301029200155448946921141952949648327860162800262921699379114401339589544462898811017989720361814851814863754785956903003405983489827229410655667336803977311466755867553568397821868603979183284006901688799322024795135584168614903059478963859948760608025452983351262186040831612930271861715332877715136175742293486819845421171085485987617791539109592855820290021905944124723720925359794478962567540398321155700640013777087325906757755690306141764918277292920402239191954459260812513559745711304532566513192800725560924299916324191753301817329024184986125607020929982109823118486395635864061384020701770087331895303417561642517255703295935155494692292999581243966861976790085911469541457698458693980285161848397766649975908143984712985830802775774467381340364202155105865173548579511794786996108872676534239497875262961706307025338631107657916524445186011009257928251113719499819444682307351999674150680112281629934629173610328395260380813294495441685977774113590533134836180418943325718421927451027813633902718119123568131548588319532202010604721704015528810688182252909978104553294269417706643429809504932410422860662003373981203254305788098126253328215143886267005493250864691421844318074984869140797721005841588644227041024990013275324430410998299165685056915012240304299257282055979127950755571757827670737907572248802496079619743275927129951199150280761725597921566490330766361381262974464110476955282139545799746456890856753604829131253652125354750947964074673545044374437668205952914020841241407169649524077194445783704798184548965967230402953255956093913165878865177800515855854086420000843031864219121208257431959148884955204372461302664539303011758543931003322035185638785145407486498755091802913132078965353211140891797453999347790892799699544139962689942794194039445812661411781805432102292106027997573685020899860663002918487876869600317507957354663555623670386543487200643853208081510807076634788086184291966360287249294762131725564824353161413310835107434463294583835484953069011992022139094041682648751147967808991119178795427183908338081581810595810975759134334184291656435991003934546184298739924715473687738077489382957244818862490054970071023621572493804993925905921492386791786126643869950509848501335009497357381589795022319992523995754169705910108172833478169728590297978918857486517965743841454364669999167444007726828668702488618765886379767427763008161722529818210128533303968551132647619427291446577272635101383233562776331224294958129256368344995503187024464633182551020585784108762285087744232359600165066710040783873262047282967481750216332472101022784095415679904699348346974851004509274591974255350262936183831026365310704462806201197068830984025098305043787755439181476808019173031253785149144448752489387239537027285382380058298349245808682869803499044508803662636261934939587921522391421778834457379282644581635479805424029070804453402086013933371430176763813943904029565613784755746925479056979046777078225759677876504883453408966493506498318376133449113629560925283604256195101424202316634318069957680491261355420777159194319468561820169099501170379966183062715501649329706988907746178862019624686947972207651266442831297580065178599058829015396492965813986503770696633334759633825294198549472252119393368558013048031145544780684705299067203179596948482412195642535507837234539688416496024970802188928222824134936404514730583840074752862136465434157820622248929727590936439486497002842951176437822287171326377281744467010125006915456034825094596916608239031651859558921719892708092817376801129108216653238464802206345177230473126806547937905699129573976858716567567266577839057643020443961381730461515889779684134797289273151271635066101689040232799980420688073593487805974963478798389346036301411109937140625522445471849464136136062583283620674793488069262819565236914864818844903522388030238676920915294416183656748170020894012164821042490803184525268910472690223373267736342939139043406328782327608591731999828696712646364843595652479522314252495978734631363727577158448138338771011209481374096429800291572034159350429938537497707751584685155522488075515492420565072142442925694397864177272490913224215957423057800611483775320076779636019131567244355146343401323164117441212913968020702084413780227355219445449437284096541447783134235632455686929762761515525055327735361355317116346564067713155266582338670060445255081856746424150654361916169410784800981442324758001658433709202113691172353506364215513051297404426509439028488751616472286418157876342361603281168323668356867812344235354265000960407664338104769880322925881632675548066724795694025506021517836065159182089708483283773824439326418809788122652045251212062911524869577363654398427301206397195497068497313441401639652338581997403716934269033178973439512446811367943053225716316463705383789167356986259397521445514595953719230330317126129210435246992522140489828330269841942729060350925082571229796416389972761617147991063398020075517432094432658676309551567739135320563341659647744459499648090656197234887999373971056080137576399804350608023771568967826680959939894205033155868296990005631808387371256646561318756060123581463001023874153861766775315370585274812667734086647675759801129906898511820176504561445559262529329006063028456471267023774824833350752714922823698736674837381057458667781851108288533030221500140815639581464108732096865943219283057383583945714089824081978631894918636791023926777088502172541945528604874710710402135987250270420286156866158656405416071588581021169580894536026008683144043454628262995544885443889873618373268498606941867569553689501057111810775174770417999291334386484013520247960668795905345069395962719602577902428479008525091723646524260540129623117654420310734617928784642196141527526062636596656042110044289606601648183116524689569270000589895417196665781070057200468821226213624630089463819317449653164725066614235310449446228014502331750195402535829711274487646521306942879711902564041212222673859431793032987160279098852092383729937130666826092686112767408738636220882752163271107441071484448173558317202851997138334752790232531366256642844158960023513278257209880250801705063769837445936707444333772664141587936401917211993938927456852364506849202922784089176986109216269380613525275241931932079189138995758547990160066680694550347297028213869700464324220372358839971421406690548635592166239401459856729398543085219259371386369191346632709141282241093045470137087452041005607563500098642993644732261338844608356777417405379840202706870773112863814186128525528372008729951135965329595417703149712403581108614218582779119498256986796682498936332941513120660034324186451710330711730014062217034180096528437648258231015755265689562454196135810908501566309125576166000564145496080483874021439011969042857476576769334330982785464990188245544786141418609663822761724028608529411193552413453573591887101049212530351948609938861117818118383545271710936887353181499335570427761762674646923953491529587169100872726312690760230903163552871813203885186215535934512623527474737136737688037369272651351440635688885958285918992662881779658344595585650119464732779338269989708682964928612851793661442734536810808480116715209810551386172486038842008304515683058608363116702045159566509670325277449629212187620655177138993537163527965756116890755229075193691911069641232808946983976304023566958504401151889070722109656163857799639771085802201167214913037315617698887704541804939409593212210454093187654292360727577275687636300458080354781028276248795915165699386480476131682552537078797618450722526801894181184441678152786081601356151594219060037895089483862738411058877870166193129021414912016397335596198302522991129250265732445005263783578410305718875168881679164191837503268131359933705631688387318260443076957331941638628305552321456548143859174142346941500124905397545939338955759196400940880551431616768749537544348497755328444310398126550885221882282570634380787044629601512906979157921141834519392064406695946225384436633597806415005589607016703976253190274425027297626490041425095863376602384156533128087436537770412317291029520208376842801866988015043321211035526817571471700142973266265510289312526265811471677321706031167769226272498387073428146465611211982282992747659878447495410628950466089327916572702461340478369091946123327632906618324614639439623015283415660535000173286501906344455954759099182712991454341035030327178856357811460042845119050951787746504782704000523340912748333329068083060706095422022211371707113332056101491541814330274622403958774810232392090385004588400772690348813621539588027082631005942458800586715607407887654136969445182751761796733047026352526016456506808766024745305171185736926056146382343094635975394940563830212787266352949700976059762452907970039681699496767757880189920631267693094289821851695314726659388330536905041426085481077264287900014869469295172553113664294785247963396748442525558303031615322986210122095603601777949247252575651367089823762826260745780983737300002592670154997816349203456517888034922070819336455588655334988177660592083797478423555913199057769326390950652276190794357168823077769109527194593493730540656700738779635480106310530009957906064515529689013734055445591191847222665726396616805910125937159896688262463231801389698833433282025235264471923426751784876736610098886188891674041465452394199908550028577437593921165159789705618758457594013397138811089464711337029331616563214392563855877264375772726580392387858605211756981608163083975498924621250012342326822156808998838061194816287230127951175100560362271289143398651835112053760753166264888010404046965520559325302436061478381521430973783462327801435659310149385080999002861312371483868327747476399123064836452836741895873928394415440636702936198517698232489593219400981182307193766301409557434607676447648099992904117580831588398491626155599741726681409598060338295096992473402354935943655820958501221091691537441361327236624441063684488616789929487795828757730292536854294687750584632706093779471895989956078910547204589378813545485943990281533288613243973669021108928441329653445762776158185725977449283353143121131759501014589111864240545042873352310414347960033398283280737641978029670899020811562069301737984708629919253791332620167686453977135262061583044285501810863201691877948707773738618447789256326579642713184592586181866669630310357912467410135710306009626357239046113345221892181414605279632099348549835156029788846375657294880230708427806134741244732392845063098011779518782811527701947920024628222426279741106190943595147484977499721346630477635584154253296972014149552242281688447541117036844090439888533008512261738619285172626837206387734994759605908160787231135462040948196318911327223040516761885966725091168039711315776672276062846425484436243599463695354824309818364347159433294848963734697753260460086618853088884516246235046831260216628408789508184104987304190500662891094396194332868428681801652124826882834512628994121142110056515551977772227063682039957277299516235418723844495488272584391231313676377629616996269621040702653033757017730538510010711657361063486536578587064341623576711078785485412022805839222988494857639541504940391904596684465186944700271914569986383095300742560587613257421831462162103739864108293041101903363708286971414554329783136963119838613491039068469066268586087203618422008036741893339515274877374166603561770654309912097200219876257575479645064212112047520235089113761500857013143523152232006365563940890219108550782009391399495604004995917360140425557304310068378856972370182073939102578103839782605961518544489315487395080895995485622176114230970148277689713989896685107733235005012111017785509839932269405147718266836551503948045254463772967450249842914383230507754161554539939313532084526758596911541783146895009219192011874054548707059435850851843206124216925689861631158053436937098218592445032473854137283675253929999793059358649180139996848723441156991901759817394801405126942395730081556077371209540541191941579619248506808451810925439436805702234358058863532215311795016403642686222295621840614827287755911154631679514289819523850270853787258184960787310010009630558800291175859566219988513963533037054354672735492169096887469210055418401139757972012396961329981194862042817930837119617732545664662672706760875347993807374525610296566419097328376949643156559826752365603285790585549816684940763366288810276257342140489820041580579688824155636986915575988545395310701824409713364922398775813753169538309150877921647301475125807115909775002059777174849049131739291200316692928585046425011386789759505710248953712498351429965275188584040385945571152935618268927650745864058644905261913432847798231755659305230218198506449199120762958294337377725352306973275756584207447961254794468403649619415539441237217450752112646248539798329421022485876475254145237856332358981624393705509627315257986047269308728597333169807803775606814621347390883106566032327219821194152882664339039481664724771986859976462790442365040051564571262974575677039567534522097887235141966752531807881955160829595954103421228382557840063006176198615174028650344535705661057436953068501947188392125502763839984029590144436259648582088925039259499988418782325574751120988014601381741441026923278027636684198192722335311223625155484021749526146538700238627534224995196781196775674687044514985834489027867693117138812429979902688881519951632209309768191671500230192928753346343672841720592221362878217853769054885105116556006206976458475513339419909521608800749893442935976775350345660027224904471484656407115811977873597778920676090089163194245855937641648813117451612438047278148688383414141869514310585128489188932078535618896158273052773742099548316357994873251473803257674874309028314217681374415793373796561523318353787943593646887729103909227310209308707915894394395366718945454060033848056526483986322588683978781912102017117248328494848744011341902064447732837896173409294655182106725550912173604040252363179011509020702810700474797157747621798121247001856833054456201732111525823251519002491322312081515809869373006127856681623723352631351289574077584517675932001917477155554000572880589434577000657851911193162990155693520459640708119221846905055010417150504695396772973833565709366131991289324512352278887672073110139490264021789286174255299705970709721314798485473265078083606647578187023805542595190362657935584786407285662592378869701126892973641167417759610007606042728518237694154973916941893266832443523249486916282007428635181832284041710808012702170223848928885326277015585012535528749264066061364139921066105609500810061236366792693180895611830776933717804500501424093396187522417211024508309894701218136624896099996025674239584194694651990943407441346405372442675916223448601349940702939714381450923678843771818303394732687672183925992712881418232978006210080526291872261612045991659746281439607772517037202975926553730960066779013427477110273091638449878248387379638446647713901709778504602778273124531461647415295828771151899860368592397030693137408071994255966684939265763473679758370004258567854295911992115564870954046771254382237754430227408978769079896467708903403635850957805380114237353345182082079336611334911228383005185721537104791390771713757976253370507484170922581419207899654370902523840437777368092553261179792609396528257905624875587554717867546162933776599114303650247041922968079572714951391076482424816429602959596160056490401264045023507016984011457694927219713621650180813946486592628059506774891347507302479316606072112082394541049145223465942582322166477127828119985835957934570949793433243379035311925858245222413453688726264544801611756121700462258792757714535897826487055709984076522870363030616068400875010325598831243541572139363719867605029402140885450341732326581833224171951174695715786084757268190869577612231549195305440818497184086169753630486967215946758427425076884724000021592081914236836504781067088756096095615915843704046961606833895081081660102844776359286629637255588528539088648568586402984284660223033651364244753297200274410784624722001551175173977317367334139899058174975000743218547531773607745306218562195311926005562683696772758105727690344774442262768341250243890754404926958739452097868125315716827776259878386076704380155562813331365980756195545694511437646716940828228227942453211045310965180106206842160854696938073057345756889404290549244067449208276336331046131572252988637430997403383553667299522410318248863588085445500375923267458653844139071283033104982375155413110239735337666730167904989019031110752147808880407944768384185436792683489200413815064234324884832341998706140128726974556381143689547123414854466518745981065309711873224411789379901630942238479339370951052903084202807256214644833859362504486760753543827845231742608298987569366299488045566898435939162589418192822703700749397788270897091980687198401754975368199491877058145601777168507479660279981237409595383649776431844367012615472531070145199650167330572549915718964418793668777757089880189999079727748352715187122940306469883135435762530427942518663267296354286033118100462280693220000704833871258449801806689923040226461080650207387862233731887738780810343687717830862560043777218026689047658438434772695879605467367900219302897752381443743570681559080704155385220497375338248034245126585273531909453792888686666314851093760496088459776111233175270066910214037630998410971514551379339726940863954886932384146332877836632451183937246481840260285966373140466519239920009717761327045063709955898452571531398995822149570730276651628627155289829264599204979625435600454957437985593304389378863970790009202743743376974501152118621907589756395892628924266509801346166631420873504750174987302457566124309146936924103332828138335113619812920078434956290930941006050785721938778433589998943696162633104724288742166274677425274965204070649922805368408806403680000953177247891048847982363947666600066917753416357662555004349501969410814425155850275738251395181991248563830158110762282598881322342056795972867253622666658209258764548396181031584110546716619943819894214626432886666073660351563421078973249424923967446084868999818931394475122007595919083094827165225928952653479916988211613100358963100415770037659252699848996079762382402436007888760952395736219825248269326451018015812505433594775385863242080432692764195387043208185137298247023791664412045166213854717001248200165615940199838245504847199867150257179241854843695883077839432221015478844928967464305278529766115311890338142617442332386148839314576436647495539350536652601329312820592256909826669572821877485476933845137903894316131380050564309465266830286925193695307768816572424212580643510368783682962534342196224579437134987083500153592438614282941579856065448689735090574917433710484275436672390924969780590078280216832521582515625556713698937333707230551664004857067866959511470820316502688847529678917570534670989644541945974331867056159076096049192981327112078986576964635067046676377768380177391859403800922977387288479959908807060828892441461022839432032137870543739049577556440822339332925226995315781269455531169438210301210713138632635826442212875361258141619282353317805450857668382655553894926633821680977726389408530717915972526331609739100766869495897238140161578054460884434519211297139717070617188208089003870454680622082298685582249418583521115980457682682464575115652443443002725407096541636596154529259643532570094553634516080060391099836442825715538998034155498691136959904189556073971386701871762656282801052884733489134199837409212545550123875160079029699484188314265843658305370793419923349507055156265054167923835897996570684164297067659156598451771130425050773421883185551108937406611380604433827238042825093982515350459934513544737742142836358789780480812729505556495817145333096764788870515330014986658522263901887806621642569047540911220922809976478216729813398926932849793232833107478994322161673931612998040817432148404797772431624365843621187934656299170723719286120630514443590906503226883462918550155175865264976447214255150586658997630279076952917799924564397267441914471547787103056632420831447707699677287531344099822321293178017529615312770430732142556308943905325183220183144685068301617541444668852397017738589708256103867867918962482876828824470008174074906946776400316958686708294222198642774301243042463216739005538748824559963925141380748627007008122236582913900907299567667049154103930371982399793877949404671152080189682609613990810472836759587420938658615192228033923301128869391238208447141151185332308243107696478001385145439206558393869283786972949674228688008023733442360961363974228497027786110117054491828532022379014242593306742610113343410697339228572497669963834574282129557944484863383169621748814473757248767023704562236354946033350741779229608232342377708032511119412395038920943156196445708183622404781342735584525528219044605324413708452727569971292270461670771523261467369786871028329045026523824264665252146344515502451335952946326214746211693577461961127025900010841779241046571439493371283432590080223879892846494600999033957235397078297239634021226988007739254584566067128058006004987465413270330670460676348773425210145981078293496714838757620977703150783250800737516448635391929883478391059168128181263914540781968363915932856340537303748491371088355860906405714160786860555936240998576515699059864546704283960713177495884833527996788362345991540453945337579825157968383910370282445722597969827083244768686486174434032008181522155530377792390432311509021878317271037827478790958316254206760543821864863579464623726570064822353609758931308643598175109585108837966760386267999718625528997477916576944305670596327740695867703822636608031655585111536726990251901560413402516688144339466610006049561755133590760200425302330255063107545092110510420446825470150722774645453746776218631043229379920451514071184170996761588513893703036702068339241532324857863689003827620718129519426061815445992815334696923587333011821994609457260981116323911109571278010853123227826349345511050992205552603629530142657682918465687586527600246952975827917828731482216668693260146446483298532617499347862014716277914858237716451962189457063800627732998459936902161162842946074986883310246570254265832759184971830263446967923013563401529083426079721224483098984363088013688833655012371882209530771029182878112330240339631761518965209229134431758632702594615397989902381483203684902766341911777100317443981020071575730155771380971581516688597914833021330357513544516062679114766607409488349598933959657883503807739857599636733882355058784205291131294687078248041805459957490228197591373924683964883860961265540412276265646210120389305046127055251784280242945362263632104571548650901691035537169306269109841042351322710104590085184468604124761916637046742497717264943387304127607460256165389685879122300997530655784791362744240614218248339461598620472976980511601083274103285566149906412714458800750052838549812084036990932049659357167112959272141882025441926676549544419130630621948115123204211035841668879045491670259803601871778497378326166769032061886722494165820001855898839926230944558545795335000624581696146406467755123679993736950752361522445408814334169664258277116780615331407154229839987210547026513116545298012392901607963277750675318088966408374966906602717311745956921180403449455550302611157289325890730003556930468112753283360241433303136808439017680574873702710724170543036917126209281345281961192785947554166071280754500733220806195903596255290757912794287662027443938851913301302000820050647555049978798890316506881726903371072251847989072586363872631914174152714279074769929212779665927984586526574633216629675231408803529718407997781836234621249467474374909118658694042685591447199286154569816438615432247125129299954353747660865081743546500107698558120351251818619853358340779350119594914573297251216150203858172863844523546744358434335047331557088001345763068878856975249390554818255055566808845623462242607339797938320444991878224132646253093654478682441180846082551454806209395780345589229314136379118801029032159997060990023344941420853600126164254715245228424130377564144662204875138666362070211896654296227765321727705115942555576520304378357401775585702059599539557729290647671364282782338805963193779879469170184686777867224816727784282950789715030932387076358645726270354462242925331076101096283126749006090823405839680515198947666914857296813712055179119270982426640120715732152743817333668025121163494614932360694826653479587643805925698351685612792707951407162969151236078279068092745171945443958499736548785728379998675076014804003903275114129275543716538422412060316366517104780561924033702973445510370831329821156334340801402437012357408799846951229703743796094204180916026046732213975056155279826885724257157664060834635443257256129677540926479397064153016181353135065008025768690041227560477253867262904746528079469640707582174862195130921432532417927335279712152323762352185173249836619577990452323682492758618537314052655975716522460197376651364956035662345739734287088153943571352587513411835244700236700579609313809418569443139119967469665448113263307300497137405407419605061128743762829306238545495889718728838239517500944615954796251588421417762578941951464504510508953261297218727098626592639955062674375540903800754940415365176649536401512181541297959074479564349987446993252896382008564085591278493694378564593470895920194045597415621265890793933222113886893502122317919920865190220005612572770213534495294132359243335865180514376778596856604528136231909246384537507040761371808412370871772936200097596243908804058896365508526828910724740580962418996174737325848485350829638003480136071283601580096129877216156860825771993053958218727254773891059977172718947153950554718965593612725110920974588713025275367392314838690984658235735884742939115090029326291666440670295316997721510886964020319621534716478963310977088997087754356348086226462439810082105773578183830434273648024731391846631293654200196996630851449658195719202357508199692726313716418905566399436361854923119014370520651835934907129200148614052333467627056640529717813652890752924251720023604159548884842813088006517931722270120582947598329346118933079397339740543987014028221497864488304190089577946870425000415599546401751259639174160047016779279776235714254665147024483697703005476634639183768652111455651157195953827506918760293593776658134221176471028765315719528243834343112557118805406655432349158892513858127616593806970021891980221207445955120254479465625931246902448687875990535891789971718010997889112036360324243780416801680067459818371939340454957780746223892292110468133572696717493200308189353875239645551871498462497849273016263547660080976869027458934354796054254885726229315665668823090005719306043596903541602223992875636798031655523337941757853302869353187864437238167682565882682817134174285985312848797885254116838039645584793240196956740770747868607382132714543862657200757135797507008007750443591339682816260892465591829462052567621203728413049267206348064390779530423318568338767712450394188836655650471091468646620861374562767083423663935962265609632024967185987070088250230714851010962442778436693428703336310074586364813049132505996112691166450701579681290239318803517247960906100205327075827872178226051336283448173654890408832742469902170133348931766518127687405646589385443880577197429864520462888911617743461683402570206187253387544680120284786227336299831172182633581201594818238635158935509041116815104526014374189804630139263715036601041173006782208992580576380214986018042749037440533297448721517898278103365941619362107290100464449429972352429627508916666522470932403101819739727993115816112237964355671490727135815920397865183902063579826595687817559829046794069094043404187436163334522401530784944221586366924167962198228103767457183671653272441714460482477554759761777186837081638629619303319526876861838750462069972340528213703426174516268720164031328182154225349974224980576136337424892611048931939899232755666255661132831473752361789192583090142711596960128490545357869004279458280009972352651311252915920758495746829728950068500728074773103114105673040352604204726553001445537191732122824837597479512282431177190539772816394711582988795511901927414427843932204730313578953744684579589876037162190153103811964393657479078416844805903219057019699426255815751381455689159544893603960179554898347900410796423290388834494438458572505998419356789366037271333823124059653392560497262200831449569444646671717582350045916977507300889665968968818717375693967534619776862656195874334454720141235301756166204398516945494273786049945418816205274394792832141603780362747057552609023554151926008904854793250789070592225419157383523310842187824791302711914023491916899687152072015761175518794410765684435972084744129520596044928741073276949019616576934088938750815835515628551171671849213255312668290115678088759154533071374434126671072849893126344371641798404086528048942926735298460855170030392271564870528219689647299122379822388819911307486964679226964361414218365563871273975489324178920981420025746456274862505032936369728244271004150582734075878839750769867186279242996434503730924143037689204936415948375277487369894925453141495813726211427861536827445393429207078734708204153308728830179108576422545513505536761382030823558110681045384723705361671407456281930124580257199314190465637738698465665207862888920981476385481997943612138877653244481288994354644331032790863868532806441495678246354730293974798538307878593639779986346634383724854410222277936923866065678854000670652818942753904038075976822829689562741292158666407312111169876791346645207603899220575597351191897177944005987022422266387096199334377354853381200456747287210291986522705366101796491085326341098097324301905225698778983797615613996050407509502962509900410977284635512777029065873872220392426555790346218572031694666271770066695260906193210397531461978199669654855044244061126002307216331643443958633614889240798215409570680340057444541059563852504908112056789222441974261162020363917684144743290645110752719279528526138635601683550702141404701410749309984024327792935642240508459070941937590789185404437001669675141322710497053524410808200708645569755440775544805963154142979923253682510985738132661273281135633416829628452494618653778972009947389149182961096737279716981815657220266534045152412561638537600354519725614661335755158589832078939806881618670225189029044359110606653495432411610868452470356819028743156869597665425330750286800065840799988653617928297861934601405330682182846779792311108361940060584731367758548034612302226850935162746287817802873702951077039146882247826248790291967103861122416296454277924506873922856997464128284857702700737323292257170919370594397198226855621386055052935922512823418475977373898653403659562677166257651878408434968835689152245861840406786847449535109998253332529008855627554673558306889746914752155409351110390595037374752547545063856922204980042425652968333174748139031884204106762890945662371091135919893404131142775670066144774260780632114224906440500617808001184420614740328018332380071776063979401399702999377655420948799390322442543185754734442026998544794577376158244943321955456434788343496489425768252668379879487786289989707535569005406926398346884199153371868730716160921459690898369467894751556316419091260195532089391076575271477843040035609911817510519365075058950028658627765897061796345468998757122059096396378788335720786154620898003519043421614303692194889669702263886570623139427284038899371762765306841942477485416435181191389326687746505921488281422728791331585099580895358100579648954491635633299624751992997004525236329627346041835935822476392613324640088398766973265002128876426941598047907497026659871838977981236632178128649772233352940111082173867545058820607952673768043906481076149644624428315221896101632252160247318155203064489674702066062551317176217446823014543159526137026360396267108986118583761261852792821441814230764190936031449664063418606252687258769528503764503368065202458808057764258392974154271467311335732680304386481556972059558304792764125568954013509830921976220730797750732263281602974250975210084822848700675476587882158257215932427384880691387215964661394699316040509156540598455717357803072994448799828357502353515402300598380710061063768118204072392757135436095782133960281461972683007723383526313918155388032861018474251095266186766360165541072173839245035389595303002355274456333847029942078338083924657995664756857580325375938274665173675940381029953289831641506099642541139411075135272425815880223167896535148930883795495859813833596468788408564576850352280314026129808954789449723577552722081783733219853770176279727075029834676268020380574205289805127317054200944361587269264655606763487267057329506822974183487633030836464512326519089406012336207932745132866469474956853144111143592675776833289290606232781263806473729832143035432255614832528384744419859423453351162261297370744191115610413948930469574151891599780544335032878136752202120143556260973504226051971830661840095558327918498877123911642891421135770312839129547528151345321673579985244347022028486723249369471675591274252819694609637702750890833270353835851319789258110375714652338241976584654066277242180344058636583662634922603568780681485648081216897094399164013060119428944533135211090429820770332534575224913885772984230741895104439658269253479072624810304812219134239619900807266122593311857739269015874510347446332631917517476396671292026395652728791521686336464849868930876672549476933447126631798063307980851025619246992949419838936108071376302668643945338847618769110590619852549963127441234790579278901617985813735405896308243197136148498398788474044833877568639727032134859219471646955403994941588501663592412136650001694925154797225537119955824062377264006501335063651162707300467751437426861064416151567044763700117188763340086916572811795227999894191887142647142347156252281804619123587283135072931583617188340463450295008251351496242542984917976383061393836826959806743855382467680078458799463007390955622355926518579927218388871503248066728984372900641954734204487602147612705831147631705687676397209121373652909056681942846852495884082678675483754619091278305434597793958015319181165753871696098990601910062605161854750244601979414009782607631934810006544947862555884069331221766163106715493668281628789953529480688797968442813741602945467725227341364113258844209996187221194417587118771634246141534868299780869860404728574280577766132190768824234567920691559188717343722253188977601255050202998237526083078195265463582420691358248004344799439859056906503208449813233925592043159195038714382824154814713057123196246163798090010783380775579117876383452185109758404889203464346872491663828909524122322233063958349970822796426407560349704610742004697922294715783617922643485462448906949343502121677361421230429597014966861244559274130214990827033074630702091914206889338750371629486452406472108238492689206898264365900275976050476891334330239228809275789943823448968879823473856455017596555070451901447525182664924469416078582764804959417751114431915632469010433517493347040608765238708804848199789049417153425423113359614134723175086685572954524179212602331289516413322215925852913211858480358945793858247307664930617929481477456637751197375363174906317950108810765812506553849051875931021494925552984498547729699771050478505448562082385660944961257833920901862369660764108171220441332194870606431584064456649685570773387613790387284969344593626094605584670436125673366662832660998803779915702526945947803493860395547791890666805534862867352061144185503094250193585047024634637851771712314260748620728643727988827713395632030632666817027971617971702123285816217403328975802581573646291930178139293818057636059411389650565780728465594157930962040776737275889303133741555598677194668710766472159148095365285593038057507207213915814341472606333994551090361939348148967263494203385673561663042893061550677625380364255245236880598739472216757775146765716163290773922614742991456498653049279414478799833091441376935707988423557766309780983867637896445666828285705083275291017262168056493471279780950455906165006480741711033209856001455766811452213786258851661625967671310250066260370787958061400164580375697123664098181215548622547596448155842746912605352750514838540073091329996006025768778097014004219451027894025515646633025102815213926134535594058886916433389427509612005359504943850365661560023372543248901964863856158705361757542517148327662772337407774303245313139020243557678177624652094302172092160497171120416629380873047758048202421317342752668633053348521316560131425025815140615189726705249230298241564590832833639720541961166756043574970337292867307607066489170561377315972740063884054889731730654168658274149742951869451534634379655944889556661311340259932805155321026926452300138641137525850097979138748965545117100440220803104222724479742817600156223113066185077347533783804483878885298179680373697962351936026612281800587656262792092633138477112731450458711346815765583031144795676239300553725209344449148974150158764784717791845232107351152245736846887836384975985896575582920725899281230235549234156882542720984094442292867885631754121772062989557315278442328465657200312982973677086172642281838821979367109185492721596587458483890588428434848595375091220061238778396955602281830393508120573765243873198401161793992184557663828380210374379128884099469504117817284878080750978260226427089173870787327916862354553816328186423542000338238475372023814633981627144634100844893602161807569811083398673734331820400884419763987448091225989334803615260728113316735303733683396877924572714207087988212736716921863651793366684195165204436961428998964898577307614460046935664342541552162092485647501114054962492274602448906455877043090386404462116271524630373251634266402819379348900342574187222084318462662357109336006966401103237463515051481237239080086495188278074084276611117023489683890709237338660710420275386072627952110613546951140691610549018462169067933045409889638715180002284318471811709705730742905495719829293722307754815882381679381617932951025710052139199601041611579187441906804410005411900712598474984581692323024433050903963234656237310898478408860350253896570941538877089593680727657573827480386422114077993027614298944522387040294778356846689046491289443784788824046078174137368756688692964823099376293044113575440223779769519087561200022262328609555236887572339554049323875275066804726979281844232071632278839221382095134757256675222220424540720733001394984464884892586720594844809557997019756678032218788776086783188383988297625108508578100849543513672491434703801192768967066025220617159817902276123739408158689552344654922141669342030195202092464190476435668128070942811850152883472612987990554271545943868325908331701468559704392722256492885235770715595262925853415288225708653298530282035793086637560085299936192548666815660259010898341249464612467104296578540024200829332134869511839398898389117484660937679907560422782738321790094635144574861251074028825888918814429965294564858008269401980273555495433184231879745655990435616197901211479197969888436469966837102494567650384583031103473921491774114219401537333757775242808454860433355304362019308510343046844506847955206468376148852698041512645950910302268595555368639968110283724238845142654041231409771874705768114387370840982304345978985748391971179421365130388468827200217289237390537587679047238865856469238168206304347697241297687296572396583343732058383260770909106526044867222139237381025266865415171479278320796046354823558762883057514488466424181969491781682372406632808862015317872112895290405432731480197762805253386342267015669685191639224141599644993770588600122701688885307125836137504003322789113336370617639581510418684906307252790713960176487467933280302827064341183817470613640785446076807792108704224184556763336233811611337643311559343616216692819894165176547521308732185022928945395909332301623127501106401793299036101139084771726273916513990548566296077965150439107132516264458764999299958695083122739265016202506061635204097328234613329694991961562528757869594775187543638242941893526432457682764392006049553476777812485103194139653379959994276287129928895649383382755892887643223453821083147450137881949218236468792998256682206549135165544550690471277886731181395133115294444636183660577021589888117328831833521263033514066804410094764016590423112422072211639906058136207210324336669746260004352769836984331223504217137773758333422444279827832282053431438004863515842098100342929905693701920438161316889582853401169777804916994248653990767068765661453728880150971467644321819831144408553493628619010577312525128879668718986556726343446765865285478634540225846970838374123680986632659272238187130190730199365641254662895276588763141787834551313232556229726762990768451617544964852769768853202941612091634945770817183985051358091089306211203753756619111053836553342561272460174764675785085484690830984477159741714286969183068802031389999194406169836088643870512284200220814041463870210649679402531132959377326997525735401321304210148060340094095910714909389464789870220860093454157593480604035051080999013857547974300218805225095021067006723386294195562882843704580216302763108977618205560897037211967242382992645530152573242364665512268525987829645274486979928955304735012424039460877753130038913949210765041353528748416124245397547081929770426109324408063341323143428777476025307427766267847751062630085472548606849018134455532807462718039375724251583834987202255935499280914095180522579581434682715008888411147521709534444645998940580324698558142039110704001612018702273285620261673051787346402023682736648733757080298382033950669360044065560078387474247525164718846059580928406495073584888995707450968017416791783075404541962708031756380005533153116539576923803684851421743907080195275668469860871628812207973620599617262827762700834381162253836571198894537676625921006364512552397371633498595069538631597329944019062045564360485031986119913719424574217071728285457675667080479645739383767084829885678097150832302485342752700326140735113438131458525436347472553744872583965373984448948590549135241717211343098020293115981461184305500430052037078553163857378094067214909792301230581191466845314883062298311104593226322298411948121088258721755241391888636333160508289641882217472852161173961254591519508775135605250592540757526950770251135156098823237895536666382677565054425718221499102743796236202232282441240493274979770703069349442342354059548097536253676613765439452596904450030789235879081327400699506662902285482386182965562752482712861947649927361876401169842740669263437846847341586306065039681262769073165940943676727618930999159032362330477576651330072134020692659956448008041314435262774557341985239676397449072989400025612313466808755271731886657423579312864379835475008703900000220995787653665099648736504340744665430054657243407133047042796972687271307855953485914482263455321675050114345405272815715048309300711096507821442142558567520860156319294743906734074478107605588634508713174145756975800135900757477125599381036730017431063774994118536420345412434291361186897018695995321585342150492644124892107918876822831028687322502597105632265408102390936496671774704772078459995944063557688062453543687246755060580709901292131731845473725985462462760430207940297785283795101857687936866101784077006804585508613056301803696080410531196322414035228325445890310844548189129754726139474012452827964726726926749368524279573243528545669802354138823373277794235456735032717645282026020193010312178000296198953456549596769300247583187826758560940721151950205634651021348672880914237130714830252297302867812365859181291225539973588026480937399055096768975431012666960525734360466723307929655272128664607877477405864471836367248913786091118820992906441585051959922325560907054955849094930884113423436133823185053461438292607305241005388623522416612325651485339013210997138311040738467929247176786357835073070149957240785656810082837787463967537322433236461758334060916655491375808974152655614028451393985125595258955311646335083288874011733998495490211530038590744837824125205479503154596310090973097026780739315810996635996956598855091120320680106552834174567149893593948181276195186069232029467556552520772301186711003504480952479646646063944348753657118833432872234590198764731962495264702835355855126635139828855150990753860981886079392766511289183981017652507069371561402178402824503320408417657218486410879455654595766918437847430079443244447656160009149505447327054467820458810573579092936215850315463459755963257996963599720519991664881965594363895560684002530827545908482935429752575506000687786183525263916084311341023101276549130678670897947693752536994905903213833856770662667704892976902436012540115853280750472139390426270674983523721397430763792442413562330464694087904978721454950934482883371930644896410475520696639507733539136310160677365340070168540857379211714085891627667046491497118605556828342878917981646711604769851784989160747038593315076995995524659621367099636888502533361237558913067643544704518176956310698462394380999696724535698394396333435319980589425984018442115598880554291655407473104378577066421789169901166268939949746729568284381392414142991741065317985694851614738813954364255037034961212334371711429108072609514615780224476868737851488410052708281437503949058779960595760232736577256472616375091962264127033341158863024055505624819353240426307399186181002411220320255169530838469819652002383892706664277791339572619286103311608881197372010615299657801878685168726860457246412367628103636179361004546053758578270203683043594005841013688065179495774090414466962047907224399630278382651472933915179577784961838044696089341885768956125117576542020955886164461117846194572222835225144470867525788768805029099462526814922051105767978559901925379938407042565556824222378307459815534472391758640669504976968347567052014111961071802814567315420944382622166162654853123148409621380082868627912042345980768245064804933455150596423753264084821719162312820998251468139294827996912481536155444528695088512449771306071363402486967357775842502207665400331946902412208653408468159110870465136060644742516871798819157801869466390915951750621581465731575756026654291600932557006396925954767857610566542447758518070969577271793341367022584673874854934312986758099153083012653770762365173715860624270571333863924071704334838213382199155376178907949560708863475021396820781467744525467301763448814253313382965924387713490555726564559134524377411277416476915949765758295260171309342570211691609465952631034387886877681393205600738601073397480653563563248093609087309683660626393608699081234676860406392842627048751631408263250626190376250679573246762502849167188984298794574514160301961987137043660094407081087010277990651853330961649438974554647039432169225274740116993986016943339290095328145102171221840251297089613158299358947572346506563695249004613617303022935416479845670318042793255397433248705912008928482899362702996771855870084727956006846773602139799441610192381499782641115378250310888661861008995838656626146056832755809006410961062293910431629273268354260097291983170989615820530408310834482643034614972039491519567275869163803839273237411618385791965171786185052644429627417111727048607285170442469736448061204169120820884430974102313194041316960182353548193185572467059311240396074805308821783510398562510699484363152989893757714673431120785781775609775467073847451083015762989298897656948243229794178497413287137792315971618178278186685336565438389073770108338838875681928009881017295947885405307270023474971697452623448925911465020560076796394067214321820486653416441105323271734449106506235863970595269732157924727931285638364672098128668482364368049333530893261185460341337216635021408190077363348940851334709815015195039567830796681169596258496622870838667677552422700779673954884096134473680410112196613964668387402259738189217584828418511506347966667918008613845049930137668366742712643472090820125592937292723434509367747197346388961694491462478810743166401448591893919829178270423611617252668723230279291895013369415228300764573645358478437204062038775217822746522484753600911178218427288271781354123645284394953697968903041548007861190954750056580450866475215135242009332460340853540218049368357695187943072986282135290007480998906311474054775135635182607896732925058638084605511380012096017091415048842931019354514953251047790198662327534130652186007196310756494296596833615784637683981095899902766591069533151122694040425070069412790684137179259221219220073665672206319569559980873951479830805495460206706172961086523298983848208137952615105071909990701675186930351461412681822540895026930288004033093181311072504589980772471018746843407779088221491070814142956032532939272118825193770939285911544210884518282702998307578614689439923634083213606774566553366642397600492917598513104544394050967548550951532847513333650933806868848446196313547758054555510286204927171947864301921436205287561195569178368942304993282270486749468842012256800151747237997172046214326622328124246725361721013691833302108236789804991257295178033377452609836038556872055073233842167007071540737218818199617047566107169943739026287327990136268207614116737049804146950081999074522218385903420004321416137454688930746866690096508122394581362577164632047722666574810701467141162741787078554682748160718753338811525984668959539018383784555829506551992988182119671900037859045250353659929622121643984758264553237682822598401841848796446083283561357940879467246385854756590697278918886808706238677165072476664735635981422218384501338502616006299428591022972771985333871325861729477113165295011026341200691411485148691645640701558466725814053929950356790406674950618126319833850476773682896530474676763238146699407964156297260926152070168715007167606478756597482111322952813082719091982519725637398912954026193150906660871838008763177515881740602012407216501293608678108676091600612671779458668769883308382869508870331737375157404268335117858265729867246950358919421944520773374022651989465838088331851507295483102112569862576216437045583634286975173530702222185623182779435355421218138808728189819350167388205998901724448493230628508361141469734841980966732272956539362680976703892503758138520366814771215943379333149847900658883491354533235187319648710122226012026395584856446188947149957779695049601593826440745288023554848131659660713997454686694082450032067726838512751692076529328033374407732834484000823364220737353794428573798543142124816782858486113459516905319859706685526958445145681253076319523059540031791501425553428569328449205679657372536068682542201547181099037797824362298358981430043159931957646500819791957757564635511208587864148161041597941805543823946631916950456360305375603382303898326435565682579264725327392949969194709135585851556129949980014738545588808455487721045936948224014407385169532677656474614055514614715501225697723308811599334978302150128097205499899200018701599841658094761399692778080526181836512489614217604470680212295304855612730105308259467858739109840570091111770383606104947003930443934833131265897324165791185528117162408271962174851086828881488186515317169377636986041647017609877889238022915844072272562121481526860280658067173635225940347570469447166727935739242032992087202192733433842965217086902563005087584879454350576985681204858677479259772854074749802074028775676537165292679505372148098779653456911547421621672572286217335959438647402137168534224319485022072048196953087213784453939819504196130370940832830605271907036208705676291445870763699785350131278076800994857898055674430145365565927789510970854808078044715187436467860783513745512807273310932806707958216365730559076252501459962271968418461204041117944688358716483862797797127979309994006365598787760737137800520501233505872403324322528157861108736470324337710608481694879570026650185651151043957797459602481647947214590902039405892613105086218499728868030441895762258303304116390789009463001252413382323568832369123034430105856710120936773847977971082268696505605873964666073380528333613292893312685876356029204770243735634306918759866726687127483105677609693268955782455485353506844697748902421338272082838894558281685931733328027599273818063159252626204969912743375040310364824061999065144050995068897785734042039896943106491859501571247789480768401705362804599085977859833361360883495790263783982891313586350014069300806104612089428947817226394043806939533862510220875580172216750380691558434610912314620256797787736790540786110687204797531695108697337584884651104442235333993871501594243016727625567930874279225600958288227797117980722066544911060105378737265789679653187885057693199172644146404318033935237948211755030563203139903525164263203528272290261000581632239626148572880977361681593092413876330653228984736527569767136427806696097253221486744518423588514528448641838168908306826370972786965277145595330195184297542975982702408816423223334412113671287019620507903998633273059241042765676734195663593174837232165042498117725616278107249517554851031200276643254174098204051104876960614752833397306886420681670610640434582372351476868804654516407382652957954910703278299776890666648555224894522176125472727474190336402390786098413683203313116890124914316091794121071338217441799606004764466747104387095791351390960757280042475143073670840200245697946516016157889592179666564326468994022792728602634570023038578304799019832479280447945115836827662310364115216538612936839125503824989862232404421642918126020209171666359961793443665973031055929409049318086663952764812283323559401686568309772373041092943918429722045435455524442286543564248005826392307678014470838130581056429426523640525394612011361154873452250225415372107870054507522650461639604219300475649306789315124052761739899630800329267345282691111111799212582754295582897018921662037301983614244918580453747229178696230134870506166070506496800962490591722678208284369809118020466497579310290963417744309280819167108151918930682056735121025745288272066343737191982514334769173829122578714875134747788005021337703430225093673741282148802716837478974349096425752636988078310867343794853299716792932843763966514429304426583113521950768238399249703375625732943557318069392819847256537204040448847925569707330202803136865202788942517500055634316310452978605945892916644319615019883432242563622611913829108935860278937317808160194111762479139884192365078456576315795331676561160407188449094783353461028609449071345664120334261718976023018373038810888216011637007581692753385372751541269216392106280639008540144774888517631580490633548772586639178390135094525739483762720652096655228106275162571070309325946994856019321213259138344247340082554388415505903516805651318026330582322438631123687655107220893625906202318992264153498163680896457478851985155508646690424160253393329370219329796627760164981451080169546173904749245931945429781672481477578038389469528514949386490032230949155031079842018522431727990551861111444346322902770536098566123709988672071816467379572582650044740255947128490800504025287838024222922235853831980356373171249720419362611130068684163930405505609704300921263204380114137222069118859915408316765730764665612184111527250971656556967224636957353700828560432744433810959723039052428262967606184894248734268031838210274398888143692582686256976641553530120867187700874309990763816341700621491835551552251062709867022297498056017412441151960774724832545363495127274414240601984083716187456106287929884126805604062018787643023403633585492257087386731086386154897867149964491716623348312207522139389531245680004533342450162164585029852174072293117156463011844553290053689169721035372253805370497012031516854030555136319595863529909014919167838470374157263020561974421765024215376766748758089295780552656558829376458318701671597556068741587457883324925596578872302527713984050608826417879680508633050369285206326240995631494710672251955145296033019718280474767422319616351592626615573612853884671123174175201868647271744243569598417150073074210678543809174147439336299862740665816530782567073849994715578935262705950149385421509268973652712206845918418988579516014421871902762928068312327015951946490366866767894021785218536133516795807379299753800741396716073920414661419748635120065462501407048833877027834013393763488395587848110999477941949519180463469657643267447696886041450563872909931994181966020971531711283157931016831450637628876338540365339033776718819400213292590801143082664338447052344673793867032121091525657080193305710084334227251309283365324418453617865207633443974260092085297501191082266783271934855779582808232581174177324491862563927690987543909126357341964912153639712394635635909394910537998171869037982853343711815922357027460796873181706415944349558967453554086556777875339174992590931878161265928828763756991582121090831482163910841089195694141670506481557875270590698568616145819833873730452018816808252010558170943738485061129791419649698157520222476719678174715711006256419747871751633121552949744780877964367523920343433694917934503187705254346805860118139644026234301848690523371936982352904138942993778684268954306443961907344279749589384618146393444719403168871795796845384163851255230817842452339983804037123361231145261164768641073773897353169801684178620985010164694471134332289796524925973605172551961728266802049088588662146929245286506948777069992143331573392878331281258228778285379738085751468801060893402534225932206463214790031625032886295628372663859331232287675916725524303860085316540818839290793628928477468010735381437413956669013482986195561283794429723809428371808197079065622632111391905707370153323453741563280869028288636999067710806099497546523305250196084893321837512696885524466556540798568117850348404723130296605555725868927548586378860042368611865995823209563265398336890418474939729554506218605826467650450770697250653511380053513737149805033717617910436485709008677790633805892515844308987139960132627175147288400060711304563388787710745215091154470032619653522936679600304543515521421151964918304962343993697502012549751612850914090135103414873955166421354146260931282833546577081635866614169252835756408252359041844163809763170254445988462071763985997966961670571313801152866865121895083885812877778262291456022276407905964470961897093307024394608830402776845590125786924355802424676058800190774763389718803183841766059270911138016228393227859698451116615605639476614820830908732220662865205314808112657797911716396444363285491580588576201900544078784598016482499584596645534028954208711715192988106551539163141233903894629983928464948175403464302621455392321123582734630875395577856454422142934790712435318874617756662708953480715785603419491926766429958093324427617688943642936906069161078372700773558194017078641126130718886345274500039447456926526211849622998109613371818940298491093300923475501574931231729045131461251348769332370146190066366206950186753882135298070831121050627163614397358237160902735686115069337718743749503292323973099036207046590750621922980571357294565460933404702442367868031456695717406272518855888678892401472705493727713087138982905962826712448708016764965781454258514824438179251390154027132664492177107870722320751394979206775721213676524151366082355290806879347494548206702994191931654995955426623204368612718054652057066332223443835575250326469872484031622079122543927666092300963336394922746902185198510342983842169011029175609552288005100946230527095015322891116707901651650799427866764959724154869020069853426272929938349238376214386635065228682524451468727791811278557851671703934010214654247851174622057360838218179949722182707106910542714277671794669952870618942642064760102857168817896076984534662932245492167388244095322191177562980007348616302650015590617962498033232093145732510452535786051750867282098949807598011082565797346577129848674986777739913612512251554542829696990569420072115688861545082797389983035398525089051985722643499373879189109346378771904824827978676773920850094111595749555686696432814366811104358320928437431125284356878974551598266234942972160180722459669891766812264072968459968893935070456297495996563217718135803121355868140029412568538809690636989623229426340027420343056377706576678205574742173547533233048258920412061172322209428219495887122293666408461131536527046301333364244945155955998721504806188885209736612135940908187446740849672310005813061868186373188674845662512985255951779432852045704712678250529481775409965895030911834151906799762800115499120032061438331885454954336497020919532276683085569944946470774128934176256342077152483384429319371471908458783807034065532015561286809046040428935370610106764771959882013376144680929660719771900643766532370974437514333569179494837232359606690650810082379641903117580733375577316357365770764026651297652679070197158321379106521564041244101440812213659724078281266903279122105744644147636740707399236138805564310909514936003433243492535382899792478270600259844479543257043807982352476104129949709530492786783421580825346565354665549624093630477886283385594167466598761380163118216650996940807196584388813906444806558167022889564494176016772062270407554870317711302291620485732232388620717276539708797581032965213867466645105885905897609727786496907898576528208918902229020172231745882077035180690365306678942286928079482271589912833855029764478257881559111746481017369901432750984029716038341846947622508705158215632282269066522979207470251343555853218225453863559638883994170500249418347777506302212395120727367056254902322481553680356424062377642759055201085952045680046319401416323642802799554103738745211478652962566860253049797115231917079635247014136751641276183040032732059470229546535016871382006793453748830661843538920716129948818186679041376952084190534188319161701829714978647596081494545957629625421368818273541402015408781430085357800926925254655767185959413777965197061660319583095661788930429537702455186473506930756103330741561908402255506897248826950716394445032426955472160185120751605390473227364376913913689340024169122566609916557174593370724865018367280484673083778700758043435695654022813861427923724500190243624008062118064749759327528724136774552018122253750871324453375762898487632828581328529452173906973470121831109580273351803239627168935690745703904638155566588898537854249363914214276408393547595300097316078642079225874305374586704470736807580265072197084577590979423086916136374098095012690274782383972073357225228889248980346631682636555486287644226993540363109242788632563741047453712385323821372597751068478068624550674241642388874315904067689815538024457414094058974350013680284124159781142665727238144735947846203152763800284641007201617411169041134305156359128786218311738516717176699485629923546129269612205533692248985468534740715866567902744968462294874646347975083752666998353626226308248461943738666559256835707848118607417302602218117323873757259933253779760335493284925537111861778555386353772772944352059461452344418515431426508074503809918988662924204725866256621559068287480072206257507960490031609517944456658547413603576407925261855606951951659739284838139612916846773854413400935019256731553195768898819371359514860984526060494670881796613359767070020843347529467942485986128060255993397504590183782025789696551638257224056792967753279194025022563690984993793204903676851725916351725051052164361023273958344012647602207960197708717698714762351976733560147559366840691411182997299430966061062020665348382520294982763218703172889353563885185291655287134958094253855348269703892742680720871311091376397877071127669730439966148118002867108209952423631639827558747521065625791717744479822756361574439013852339283019936253065623307300612755950887277439979392200456039130074738891053178816882486996521776876957937181417662437775902916397212965260862043115406202210012980246932842894710579273711235322125442086322209401748995397369122635570451579413521791739047269619396572076325906002585423188658340800481361474829047116035925413731049512655718637122746908444563574337276228048680973389639249652360048800844801795247281238884040452117930120403644096478104593635138497961595211817007429123912665358339217211782365306653760449583603599578115025614462183253127644838148490223080992491549212791182858576160584923446111318768722115097117752262497714910588231440253690535023910294694066303127817547558106182541658214685353758214277528071113232866949452215333594740662859297060054396327743159308822243064633617760695620698139732847140279491971239568538465153392909008773472639926577332713086030882170531014701312444119227615979657580465361388457944873789411709348514335612395514050762296202392161886398701860566296435353046177995372454031767109795424502839428447987248541482443098625889038953422984433666100504664016743057643060189134365294391875247765965973642955608411880254310083590852624537529807548481319445905062890279925559971392380551999412006014139954611681069553251866328161083059704912011471500175817667102365111302659371872800119992885634722557635769952299645023654027857850437217120625056643646263017157393036590852935544690556333264460053022760279908646933787068283882191349748966993872283370043437222573791918949301020439058729618810628693714882391797976196739605757867700206330107426081338256944960972761176230366519906900523183389900215206605862668875225399141961939258885197992112591726800157974814985462345114802034445967821892887683622737153780841104562442169137135261050002788905123205168815030351001079339589658934508118088798001413012410008295925328271037732460129492126139697855323921489403855686237158501876826639319442451809242895530127639276100677045837402011542417732226946963330132929284924503211472782816189174217939093149843214454769452692841278481074208486156682872734619158163552654993834663785001547786923539943926763968213321827263621788085439104019612177736771651714187390195349032116444207302367364126667182938377269413200946468993770504803190312831299484809005698905839614324608512113745758757311850613734757933245136701215631138406553164268064651564778010712587852972367899043537111122534921160343279395771180222121938739134476316017139245417633315337554956948111254764233501092684989933022754085815803527704965708350578302975708950649059649399600100998961221208103294465034230654170961829360995835742041620798492621801275222618902877468044103887516890169009172768420780052376321764543284902713745395542855317364797999717602829300279197303440248754539688112329720691487529050786635303519605977303375371377048593612263150960496689487848104781435572299244459474603612617915168786184742216377211708515097160799649275843101142450855939699136461079549829829594667193242805387976483625483432478456533300586607907373768685514817333600401913780653127107291218391965278367540052397382057174839911530594710507647310430546057023410747261592388628278423491165203256730564725783201102992687267159511301039215149329423600991573459063596809538246880874395362751912950038455577668859160635395405802622094240914525433504408377197389949622106170518956114089832190372986594853857210889485090591703723221630686470544502929828813047150048891924714251512424054262382151197099877013486824480866471891227554219174126149923861002585707182007767320922142070129768351622329728071319272603134249855489158865273631874052183084430913978465614761573053449662086714036402326736687856133057663625011182062197821587022863609312240115450751190504967470868119630600899604526825876627708333883195195296850456244345484497194974210980043246177305152489661352784087482353684555151234312150341349129560743633311538567669857433004211826950832610511477512071764958542974415893128998433966151093689158588530955171860207210005080492589570465875300535618846907108712662067790252106422640811869316358126924120492001763715111464570689197886864361061860972218602490091343736854779358069806651636110003301784372577377815152156782682653236646526016614226335785363951532940976951174445620122352614550063601000969206261571894325761145447316223220877489707703324961950041692729407018092875129729042094006182445888569482183282344986772902588028598746267703783409002752109039170497095645496244739341427174129768006477785708123289176996141347533847838435075269325708733701386684890275080286025973034361012196158871169932542710257745521258021190438838912737450726786651890279015142274152229620551797420818194854217435022367943831946591190325442267400665578166182812042862134898320010278886754381808038124375237623676997557890883121041096157928199996243125506736550566626403916178218241514439597238503135717052141775196542938548274558276808179453078438574266419035774001334667955734680836471819924169024575460089101960509786247864577847717167302184474786360366359553296007999425305380630488837629508327756413960327649575367746473120499489426583930953758631229346485740168213933480106806472981361322042894571552349522713769698491850233945714688281214365544138962594969632690387749582477603300210625683998478900910738037739216689110191504807014975043052656873165666366601254412460705591135618831668937318659919438201168867300344094722230961858388581140060034046587233760956831160030206205465087658451365309244608134686817132254571917357935671706114978323651422918541348373065656466634795738354265463573083642939509810053416500799004182225133752396877135070612515522183713809243021705775082075520507915635097968533435927228547961763566070617954108650352903404488336403907890471565711214980198804864065558461195687555942011780925590454430662469551866009332984068213952224768009303140095368541947144328625471337999702141018715457449475288928857578572803314683399213001160302449397263511649986571138424489443668044457429628422877966637186816559447253809435187635093428477474174354555268386340393378354907865720714754223221712249001120744637378231231009437302416023851610378753219834206945620993097784625915870798976700195787328782701598184311731512853888243431715463440758905222324391529374677919108168281210173229927740754008231144245335077349889929624053850703162424075280335392329391511306883594091853278095663835327842194518250909413919239456124635354654601234282503919436370219327386510727413175110927068900458928632471550267554423073909079772929291409126389425033658976613424738354444824426241968372394504840393030305431884874388977517026233949783058818662242661273903034643907833521369173859669556392942903471953439717174547217593454401427665447946368227981901193170218436299210202811434790928136274197599923977432052324693872394575220026391110112578480647874218686512037111116549288897753316485898105596699244098494455109256028652441910091653903609969202976461874733702766955879382749866555228255265041705638255755107781155919987984340788686909811714279937069547122421658749094714844764554433374809132282526090409154342341419243550668118861508604730920754465148613260314013222958728526388011260515402830892173714535663215248211412297187538307417384130568001095113172041649442649598843528758526748710884830772783438165827090666415357220861686096762187398005219600701220733266826836875826576560122316693896379675705811546556752996549486801403370343811308018183429986977749452872254109808645244279801703770378137057970556023316434174803748175887902320357695983507263151887447306590778565785114570866730054207361453832075354938816574174230153763674561608718353522201120167943564304385008571577474176169040223545186722254578267721532082760285507553708744678809969623275414826333116726276728629416851090968285742508240152902337639681863418829474311799399654472232696800301617002417714710627065580184205424773910430716415739782630355843593135502076537162393083492318383528045565723412463575146745617454074275011217971105364790357742706451950867457403453555949635433499749122988751728847605622115545741372617385900049285364190422141857513775330268248762832237928113705363073385820174263963438492726372593661887013049749568487105480891223847134926712287788105687764893820192468427746393476415588433324147315153039451505217226267477622582600527838455512766485160301119755107967889062568936831001053588927248473745587208180796557698844930481033034817815455498340963424201002846897093331141480387610266175597601647804122484977333746658104370409253067339344535147188912721186138542470340175383380452231628163754276816970434720779792133244040177668541081159245346557972615169741576573617234645855874926434125727952483120680047664546538475884318636099231302606719507986148114524632330548367504406256449126271550620013819131563171869688956611843002553894241325277344613274570680015759358224596706781294626477185282392354220280748071307277461259763009656276132423058891705237346045203511468223429890369819319430421207642616800007875073307471608674132713496289299226859992097854456012872282980205839872271601112662291108201541602568788104678623873504943472961262468793670672789684862141271958042910036624150928608177967187999084083488476014376183305299519028678455801869806321191624480380157902835916031116720140223853365098816069347431765246768928495955236260676985727493307865737491155253186753531460744874058587763701370654852938703969233656860929607656579123494309824207937083152914346762715465477246891313002826247099724004172342213318749901422281668646263645028612565570673447520017940257996097379207814916422434571181420009396664751874908056827548122025279010810347019070940429487866433249474420343064715005837925489314199564883426569669498536123974274355932471464163931405076864195647298679857716979069675080185836065666411416339064360223147841622137923754198980374499941337593647962749550519086243320444362902853726751388271514020383964647774052685689839009443211645429166886899292805858359523976966397070827900226060104841227797517994752134853090489708319192940654218212490749184599953507921480300433869135669716133638022137450099504263809271367956761994663557825891677456826053254108613160804212237143178834961351690171809789393159171596841560661922381520120381912176257931374035169246515400738380373199604139519880506837341405341658766696096787148042439434764238416638611475216153800895970317735548993833551680130962521188980601695037150865553581322277187348907308948014898916509341348492629440365113699457682210183288954852599103962635228566052464344049817076975376165485120873257303239186755260222653958231006449182742072117480627879528779512570645248430192942288925404767551970309721566196094412610978552341576417541914735796072931192196399068470521616397437967633457765517119286421566983595566189121240381391289340449452334661344143861348841313149786359497829176900889504938462727206308383923377109296358470443624825802729235829676961539956989136173147634058642198658469643273071465173213244728676338117643795809235250891792730973040320271016069269569914021578092164915899709318596469499043084139982041722100229282031094307100802199555352319479425261631049796938240663112275921407811754853433582253176563392624804611978610946042102444763583366508231076232371272518104671782394028859856690340770546920286986825668490469887174102025899317798879239583539127745590939197793052648812032365518608257648248147976988661937180775829808394866253731907373742662946150620268292065588606681503555787286584954267375550410477796432290947528521198916610526308346892931070329790774751785267745067897435539303166939083654504286350790732714757351837120103359582303367851931967210395901357940804501779017520134228089149692777155426570009420124364858747837449992282506475211700328897051219224483222933327734803403151008986757838936694179570231351921404139144956716393541904904388771931389987510510967201326896171616403442055188075137256729954369990988566162351170557577843931803480583173769223725446958888478701728578186872516275447764094372637370425578050308808865219717559830101231737329174878356742025037651847578449569168826397267698222990457220116164279538576097287678195122727391625932178991987380304654971845230178441128799888798781867646734362994371622919418886036980886067973283836584549988643629983498716515934042257042895877975155009063157745127334094623913855291087032643772477196437040764501067468577849304704466459060491583408805457480262150383103624485115888164262459554576058413843922287871545421384771786745391511419394618740137042925990189580654883638856424666647295349926740813790937037846115384256378650595589433128210516926187280399990776813805481057803319634519308437209352976225732003062853223146370029644820372345638027388763414398112239236931414662037220047490550151534667862304081666896470480844471024596312587233305963446269155452350521515254549904878439454855502440400781737781637467440602560013707656325289944134640584763998214951541643515044179826605524312648827616230093805719255224376580266536786090739357583865051640190117145523100450898953217237747479594282711927901997760534592958761007493071234507128710446068539103043958903063146625190837060644666081739403515821337804969976893915351234863656246020873627782954119904176880480249487540364933244421605333739093557374659675820136575766842946747520854789215327110514110132749142390088718151207002597196835838711951273644504978385767831261672871563085553374038020856838698796125366583009189990589530780307357153261304169199018361557902884395019439782179755649470669853791444672110592185250032658252568444913758688378576681446027245161369694938546100912297196231408843421454198544014235444393141038229951808324845716052356593203158731498709738287556381181166339885679154169412110506417979746832067858704210654837627492730249457699828891742204611553470897075381715093436172805020406322557959021714233991346585826836328698051081028726144918413757126427508111084226814762755811082636165737660413324844628986761065047754195348199503597276086472357485093668024554944934648133288468132379894223031816796578228360282172248630450088916596214702256757019972047886582396936552614390025966082126737300839514393517867425993014806181778352780192097350418985431048807795140830473270435409719548968216690506490801686503628304225678043905376789860112003314123542439616693116948357110399154218423232328505384312697744319178743146144901872811368613583400476424135672268103538460493863226540154355282858233385225358947498413240222574083886302170849784696903970691725337878732180141900399337001566624432445520032721205780892898866085034896247686507870412426358170340480287650678400589768660400751363169322259173701021133799957009430885232868604484087265370718283764950522206328068790073333574715733724434659215290608818543480078423997431026116418716175988373925976567434318877946351233012895221677235084214787405932175215309562198568711521830377406566518320276630283494948011176882072947851018146779534169508761154655412658163542915228010239551323378529602642543695534152334455975935290121624188789514486538412491889821073184005342347550447511778009411825691615627715008392808540364511481551365118641386996587750638983520468279316697312016711410142014426894081696826705533538986080652877961803928823530923172971977288095113048697479605394127521649838119069705340593982056163405240173652096969902144189399644773104126679519825045862028239883666049397783297700292521046434405556428918013721211602419768030968888912575808372975868637137077008327197042785666107445152646384105383422313489815943678316171786665127927192042034287334495279721369947653288524163884314238143666218650987907040717524143130210650128256697734848334373150726050585213185520475683616386842668978548471184023917441943165380636531406886952954187491100770009340161132921679344679373918225728973151142375183218165284180566793236931203736418145626025531013309767031575826017756285326330684188257253615919692752008489963508125974782556162646200230428786434540523166746385614797751877514409748337194376838595955845428152116552025816609846023198329320108957163484466366805425237356948522445347859883216236559680202783147789422326043693282836313250228918537357068949729127945379935811196726930723780568662346659802700871947166725222662501666880842158304387604664454858391457047886834911859915218345913274754437381853479023156921787282271894152249063221650689788515432352365470656144743908628794560940516036281934704828378494921604602879797041298693544112130964892332772661916731380288349956564703955569838915092318055350005833960476773512306271552276946289676114276054553853100474514445108954559768027975085058326142778886066799380823357551225151649760748374091320899961307592661488793139352182089401082116037516915933542184092804969170832114896128045237969058917231656516718187529620947868988129259233359195887903016678606328494334308663049139906654571527048465312759104332218170322914349930667516129602374584153408460771617000056496572110788117650310611175128130400493099391579899251761593471999293428152795796429838468041607886572956231833945458107292389845034557668154063146318911253123452572668006857487394710967343492803676822795993933626288544338515325938451692293715622056211282551452960313378951174433143878478613242572228397740881918609359723595320187574740561168914927752198271171148278722244057183494999164085331135733386319058622551478931322326017876784708251727016070743528701576754966145465824683441504120364070232955059740161622979578598404499084166143438250726183598846344753793449051583265090029359575061741138925208459282787863230708464724013321980078966475231915725133144498270443404829339049568515955963627008847137340063259325965336366933559296461196754273907019696978242903444854442484525825049251238582841949391609923315309882365032135293550405257429682280933696744395698437761039505604640695676697950205716976881997807211565108273561440653747112715207328528444160507347641954117299994207567218135947324643610338076401734163686557748623750547405442670479587883711151314724674345519094275399071237132664329943895517815898725113722868782138492056469559997346275533634402177095601053026046979810512624553596711331863866676460161691551728988652184015135253415397886384268482528800030550621231763832007049060511267114421908084543766928943143135229810150589534051547639422732482593830169127194392135073268556416277934901147589384129455886538566148820856803220154403249167828358093089394642155770831961164215090931687964794915406556449468300773273363629407585841528209642067669646359481598538978826971703331038323214024067777812729222124259467197351171693035011771369558125612899918417413569448341078050226518330225412702288289699052407030272381500973827733783999486133943934721403665382429749228360652551063082810730962335210002542838881389845515792787111844357405600541740401970783971174216750685735462004907630828646640500684940993472144472542274350658442603380457955992107334422724129671041766421400705479968352389528573313337311444644485649812215929668427590940511711215780278556661764677464143529252592433373895151807608289862434487015553272300052595106648831804221884378002389482391488938491814657020623238635642974925816824397161957110309465531800730457166576810848017386518128165742966078903209148010574762311172392291041260135442311395813270770577086988043604786643806019723833725247306075518304733076723839159163389931743692813765189358342779038353140866904509400161347182772964562058687365775096221042499871789752166033049526666650655849805215929405663519615896315795617217968754663123246081260215077151297787138812312358800027866907527489326505749713667352202269992516044480061050707309129773375071464730584468625218110909837427736612735383047266813679379569680288735575413235097738091158973344160482266496340964124493854175188324535795302169100632522146772916578211931476644899951416784118792351893119956261764120951870072153193638014858962801326844622880051919207013766189335541626089479555310704041180754942934988781722463847423358301244379037536750811888175147763182141600516681200460423005080448181171513263720488143574645785693684061553803196415924253958988429520560548695957481687886108838070306648381951868573244432570878398272137962807205010367691599558262099372301951512867115082393938022135310560393703385535937564607922072557428768137570827169394783658439160760241731079510997572403311755510875111715991673546395161919251142358523481629216041866808166547412768503420838714880263388149983921197461205819919853965617861956828069659794813786623228709651230054121458872649541426081509940153635634907738556812084597360202442696157248700097610719149604896645396148658996258711485451857831198211248381255952299549046503877353508254886160055789290383217854458595238775310327524672345466739520391089702261319207625897802847097362858730707801029320118049016555575514290950896374103561346885335969806458198297060339063046142678803890169698976624918955644332368683026957502207004902213269225373345269565605851546298470244390380648314776472339151289546616058316057855170317773688410120030741703737942094139298368490379060395658289603679785059388102230082336634026858424008095579225707932264821723247239462409318263576430151945324206459708747799591418041858848454641122222845198127397323939408900657660646777733855396719861597331000462537709973125715953570951486281752976924832927474698281127064973270517978335934896937213917835363171709774450442642132411514104144854724910375742515473751471464994326782937346860524717214222113922538220536581762556799236894963019898175030260086730795543953370955252212355912754758208509680723230345444373834805405728985879884764580972969129240498656382162431081766572911735157366301155380539623148485228970403742757149771310114541621254879510429893728584215056407050367643053640367476056449140242911010976880695847478516587720965305884650230177211792997034113239337832730239921984750824791852896724206619582951679739850991789424799127964657241759134595482755415357544645396669184232084688034495616782197539140544934859868192250906276977614205254837640216407372101041428463813677546049624714491541264328141393518531191508888399107975863442420501064802881264651006450337311355027690820885975427390235335689134247999071540715526620617847373520312987970898714973774166247773316291276387337051278358181344190000136085188128937485509591370481814491054946287610678449117583347461635392539575471569729477843614119028499430644602546521200224100493668840534158598105758280226476933396107760892065985552085281733269941443571590558964848972869023136115740912366338202956024582388275768178704058273487667927588090547316459191023152996873845353535786330500089030432339391413283746817224208965996043444490432104259393773216056424433859400782961381953241025616700251148805024112070589593728829229273198313788890413203648240106309478798950929054830549387494993417092919060995347762852133215914795264026525703259985593838565701389581583407119107632549660402119064726385651325034891182045587837652053732951916165627146377449336512923303609220164475864092946811555959069807336174602387119464608361162459468047171587638437023323150805780952951564962944499345580283146071848046533100948964946398553515905885052478194688240326079136560318118253462527916526109085994748174320180337261088571135233105986874110523803683845343510690947348499691466000551202153416032561950002275900636567514258664696281156825418852529000584191363583475115557393688850187011685866665224353491410543180108365551025370111313702085937853906316933379844151952163847214854964684020561010334067272422702586066638144222490282682311770914106014518231984741389587929848737154890266317318878206771464817958103897057497335934187065626777185343721339570666642306388774630580495718924603452061019930434914544483766800963503352364952674418268058755515080048950398648750561555717425278752770386262978871767300953926668542748928856146819820487657272327872275522988689222182935876379431624813829953674240263572083704118988200116750945762766478557121150472409278736074736064189438058178879794227122063714175193164500540737601858655198804152767760500142946679848270060283458440451487011022000478503350984907857967462382376555218393853704751129135684510628623712842775609200595492213636749818369085088914685262569184769360872572941916911078884273183181694696385311862613843118198619185794385202866253322519114379596903712264580504548046360245179716527852469806220260123540851176686834860946212076349438046851387766284415210710113492775339755603255095329487251325323757010990500361784358804721044841294856611880847633498215202198627563544669804830717753005232196730566601157251100820905197410153577175923057354607866578064117568484397173410497634639714461516163990761805726482886573766502581645881270102036826629782975774475880885965613421970694234630920883952859451818781244964323294265741172290854640470451055771220409929768398382807990070096759492550580424459042503785518040131053178310313277882568002858090222296988370443778948216816574206238634146680394602696370735396870196116535088029100032743079055153070934872848719116333787732665931967202027968427951364573514676877343521426255936472890303870742550299957218286671260687911265934114233815803461411896241805879562954267368337927832225769805078810054351551981743727814567926755041394917115956734687155340623234347310436171295516708664176534797338884875465852760185887685095616303877026649291008550163360255955332115122835611392344525233449611502178137258216319702228900660675021749924716489983661277426489914965791102425300764179930939202030795829246696460757442218714458882889407286206540766778300499531565047398950484606642408730939064016172984428003367093373638297195343920316338098078098686939524004877328327900727985242047694359135279933403176367795374550192085112856747209581578736540137175083429722742164766147539942043883363765421889491225934977270321363102970908824111914996141690837273963724498051180280854123130831751691673759462257181218712148782321296790856737835459807167075928387784256160691645809102694672747314782609067100866613195683052056005201857497734700219485790977859909440431065538705959265242773965059308172200518564377754355094458863227632996545661846023422929639750521058240203895201744904575019155550025213988303549130804148631873822649752241707164903059507180499751024058161741336059170657826427419706889391492437439093965074462496443675544968665422782123913793173838505244007420681033043073015622519187836521636292880232609785969315331371165396705561808634499823950054254423436807999002676849532389424910966947110527648011749763882211594915635222413108039181891699603224079365082183226301201719832527943303148543208998923413285637842772092602613893449901836244446777987291738528697586553613845168446415426071543507694566332202929945291656811183897132622946495877282900757135841360241851238676117005027073718498197955509650562329985227621044061791349842433584397727236003802132390503690422765754857961040017408965815145996813698889451459542021449776604534481225266574478457046073951871377044496856868218059011469733228681514263577593861107515172929299649284151820739844918895776707782680899573880795044241741689543342167534492722171357091186949221512644727302365579530743122128158726332065155443806634152798271825869333211191420116452373740921510705228437799395109545037973929563620706886790539047983171221390265156861980054431173177716975903239282556402998295880749374444511398869395321791419913573685776705162594617353521568199502539118911106925024759172297308935243783112559169414193625672831752151937121908386410679110429959040585785459334659778207769636266707468653259123239338433219399034778391617112475746159896177531153317764557015282365038156829652155441602531276880304460941085682949746934356983801424430686168896785474710378743200966534135605159588522393184469732921277638154943395100548919749317449560425109236798516752790657337651043623279889740935778166379063590933118554855331912224501290516646208453465611100342760687820084476261371647073500082720991328775748941187512436882705031099661298086687631927586121657353048494777983321800954783526697119317040503399153250548187127512283673089057017796499192239770868126122641757557556983836691826075745159160545626446219745558573175299224063810955035217510426121973634418948669146869656414098908666161922473939762074158948170690321558111386281682480561775775363544830180809067852300367945859758356315927435994724368623475324493601450696726417500277525042248601436492309625467729327915809417180179197735724482716683458970525400962086605165599321870303838079723276203527740869637554623761987627579576488413013941514010187958954934403175298076252785850139823502810257326585289911434989867975586006603070792456556530381906602515309627806757463706050346111328590274833711649029438969489805817185990353932322484028505013412662772165001320732875841787029992832398303502698029694915261013688296731877481570595270631369496760390884306853854965077753515803337863851947641712638366464619288271688961654088456854712794619678132269412213921942973620955011908851115469179093494190183076737480519097259464643320112252503004203081005722238162035329731369358268639487247641265606895203387118438216044826508636653203863833713660179813484652429278615616041009994027420205572871498868765476921833899049136705393070999084772101877105896148008092367048337962606997015965769387460664368170293171479745149456961158013979263790146334564700178792369093773417940404638330567139220903690068338841879214776734317064109227966754720642848618699148261620897538205322928338433662564559970878589885165682767929391711904358253044253828364021886955412485006979106861728187831555366524355436499096402190633488321776797941863609687283724023745102451619795430032611852748723559063898603197171281279649351724393224141770691473044839155980001469612485860673047439585459545424339789410573279692136126567011272322478466542474333699393894161703741362812247688288402469175077296772582072075893089540718159211001744678280101305275105362152387978792229529485105030750758206593635146017163192427369551760191137480291014192915201143707829154625107932627410979638813827904834509054104472167156615698585497831152323985582883391777980637833549583944597748147789796792534542145120209560037217785442050349780218040682847019160141632033838375656415267610454218915221158581005165945568116394495227939996602214287974493043927766575613085892877158908579856740927595240171841090472873743518201722271692510701828415036014773514285906266508252840810065586770407618428532235608560477047291979890815387969596703271615369131809829446877017136876017321524443246474520935857244427885909796594641626518404559808127603216806423769378299187778367711119650205457318983014794428332153817242246343258747880418194770954327220856761612761602370123246396173989243471452894466724016942035085366581386148273758837032943421077125491135430545890289073093735357766765747338683427312190529294751795932917283188687872201491820097323241246895405391154429676375759801750066394524281457293457511143528552875808790251871680682176888403903612069889696595958561707333635016944756121118597488924231537642428677838397680117202027223489391460943574570866008317770941231353008622605909036806304420250986715320559571217830200854869418960792650022098522153138145647868867957230410227781171404091712443676246460481791281317689309791965479273417791254946395053080595812305161902049605404417921064480857500445819898300271539612589631273666485073680249238820141704079445300886859481660719977732757927031579178769686922595004984477846199650901233924274503945726891146943324538680772968136599718393196104337760469600897521358916946853894475751565833973598144339372746177902941390419614854873858002680814766563278386221120108912935997923032880512808404119839296948839083817292395740994720247265058809872697440143842747681699382875151544407513080588560265218012893974451674941895558655556191282183421846210823895630268680837049395625567709284233095549653420469940599257515540209358397211141503542699871377278100458869999364236126282007082527452423426273979446671550823560390231211927763142601920228325682193474431972379567863072635935156506582769014418959431807890009780721918244161347086594211026087777128120426650225729214733461577620125265182482134150147180879049785647036792075722707303758855252086911108967583490049113395515516179212148828479455027633540353434784785307216125271641975157214816044898761836168435017714795136700537549810770534231088530491267223779801659210679973900247334398967091594653115679426216991267511761332119833094228378357604629439895574183627518223859775040875341381822514488509274450308419042205346118879405298458143246574196283274135601665941936986057167681976162410580384092164439082712465508854402771338494411893604651193592486278518557652807942801492253194372954517776730022754992644533102648400539852621585105113931392431271229141152050551841739584893113845048089250486068517192960893275227883524984914129721339182330233925495384393109548323857057741887230397324128432744263326676064074657275788068743474719575168898760821053779891962726658227416601694449757043874826705608111670529753161229976195168931011491523179890015348319185308944990626321146289527784117693138276521980034283888872259072579755280776624982390972106523205899753968884896598844555163032154192190274049985274138877344339205317315661526465138443148876913412631580765201725884969511986958941430194579174365374993673730424224985442728100741276447883856778648445222907595949080292807817333041857144919641653991762920277546710710123496704093959459335990449055809598188052161722577438761048135952875540908769303691499654890205351416769642736752645789300124052931366684151224667779508345036511978044877855482438401757602319375594950849548411368217155193570446631546848156188786118914342715606436845535589064819057543841419434267583095181098924204430929791825850107009785242891571213595845033852416736940312966965590033434764561681994343413167871399264466800552477419548317072745694392461053015503284333961910224574533144927891495233676716209003537186540665177224714302376479452649125295818540189442848087412896302260900701597638386109134901168816852252958154359402011052648582814931619072153957027253857365252676861783382347034079760067422896144728318995906593201015001651053202499088786856586748585469973904468238447452637786512791350187959542084968822201365469845757432763695096376355996132457879078556000236947168189465232177915800094099263509796708800892232271678060889181482843682330159248371112837535539654989577001138279309966482061366650554493672112725107580570166853782694165828311066814925481750219794341037689252809173555957898014457409945231110702674511709985637842828164148646469517359797157905155973939887219484614540803384052012543032813260755198130784762109232002458845595729870332308395583600300862899853154121993869535449978603560133415164763864413353559792287554086228288559285573938839372989107255136146060061677811187121464500648510913207965967547454298873100770675697551088235315174881060126321869401788291599881916496877180980992459978325370515558695868355057420927285562928519699132194349558165948045800445066993261494764689909886675363328287930705872530400570580846606920813962313183903135031100463053617658742824689131803873295328293780172660411221463477055916812216527962021922271839346819772238453408939284566103813221753348319039344020812661188419995445562187703181076226656560882288487983225267753796704937229240044836097648012683525898494918028765646286976421594364626687022521871741587076925761613101540553412381676241720440255427096626130492946485209789129248543973234265757317109627360366542363743006922284980210283868154789650745229125395246106320225660072035079148155880046346073695346749089186104986172497870153096411315495363683876794207980521558318299264459802376139016422968863368822701584336618365253741233341602963925125293092363988169291216748484859499366359093592190605431221228964934143572863619939619312643326666503787938577961406416426389699294637408283017961541362306523913890978967701655273066465847277594046939162628529648063621853524479245651461356181614569364375664797947542457491319937632644189897166891534836589877307174988247688011410495031087188961532782811192556940875508707116324566277474318414711913273745442753272244697527229279246664216938957396447719955761500273643860629199395519247787766844256318448953586745631113655205442526567995324178675454665999175734900971139855099570556500580663196315696516700092930525908414798109609699080037437091699876338677172424203429179734864789995830335684248313154038848710353150194858263218051716443608427513630219498700058797271248809960377988988033970134244361886037047398588778908276889353025181572141125380993153265387447999258272539368755307142163599582996290191257074259362098830829170126297443176845008473057778309795737736677070770204651338486607211423139113278636568112231882220103851825915117465596720470141267781087319884511863453064363218027794465836054549742287454871913284258614643259974931946210972548602017987268110321777622921287488268597322633662630449530031275238984833649901683555423506551415334363952239433667846944241454560162214112384620100599976930423334998812904355720306333095535996423395572529245497352154861733185973670662578045933893533850730317795660149477159738327268433026703928250370232778038192853819446165864019128606605623594829475575370996229324517564754596836501678397150334375327031919922691017305330361935649289730323281701356769889603255788936218977864200099841739280496599992556217264494519155697951014145034544866701771779841821305109265087925157749694659228993982317612852584375013784613641548461541589581841449890105864637833539635639928153442591222905414999038483417470582541333761888192046551880621149044022249800130303734765959973126241145535571904363042850777758933244686503073904547290902569802736230950779521576482221806332528437604400260068112260485108887699072860631589585376520793055652690228387768059038880020111080313791776727909116053959780517627930337609691606252097933388417216444760548600587214942135217391430197606117150009212036726499756998717360611898158562408023729955590397410410226988144284403313755213746701950877295280583773887352990365071120629066430975999440258788098215860367646891866888280361043736733754927072151709606678042968520149575957813145352985664669698187545607940193806505484534081381916433001188381658746231789347009004292783968101878735364328635348593390990131582340615860554883082379236176903395630963114181758766072007314714752068175128010793639612141777338647314190045431429506474760798949810597255906265999401516473263243992451541472625994368026813651910782066572871402260903037756850207563156148011631392024969227499182576588701908041045497633190795719818802282621693274646123359953068405211213825689570138302113996112598402277587786677555875025101101718084756912149081846244628532106010164245390698374185139016485058366911333247556436391824090980640666149291920012516850585619423770276838550476633301296458074122361603434663779319146107666954157921622121066064475021187783014583257020180486920076474494029791645662250175093064608382835922394607633096157601419484273213717988397244270363076259422174748434589388990877650036153506805723867836504204144944321962207160048819411542108523138251841416882469103095070644014327323714372412197019519428774578957931863712468290466701960948563989242698599934555527614819625684259737563928130593047360764865903993802797852494993348743606325380476714424679507545328315840518668920440314176532800052079778521165190270426704364796766424531141557165465586298876842788476959987825195082349346718140583379879887387614433511128688131818639414305359341216186103073245360409705143708510623434566361007916178405475947353183759065430032028352343917587038682742134988737583878308018106634369329274587444434645425667461408379593219168401439942640605569926613437707195428144171023877609004658426394740122059019002080598105266524306054861352911937895908013621202271403229164528414239755220831488288346582143238662352848070392272976429513995730489401658374634096016484701296362566530490062669705996723373105884944030618711432329548828532308067741826242933153773580589297934534273496287055022990070334230705347254665851273027407189103780264417442391042389017387154163018435870880682322089879783378243311219217640190497087133318432492236303135759673876787356126068988667193140093702556287236393171336022036945223096193171502428874240644915381078479464884887803668501525392451960919206974636249898625389858462854017975803753408449634444050992913733832294522751225811505884748272554043623485588022461761952676266602071299787528536184126955223451096795213552019005165778323161356505378152126930774865753934013799437061608129721529784450567870413701114584598162272145754322411956003452724317984192014401903556508271933905913067017210590320802806058447474821206586135656866301398274339841371933556573697415151998948409079960388549888679877648887280501500746302980860461865563861637356166115633817050141453588260169021899158079544404218980884327921702279640769669633295375437351557907272072370615654162111740306474785657487872445493231722634696590169653580171820531149702756168858710659992965144939161217042345133549190859573857600779232100348205803929517849255506770455386036848345860673506652545998397151175658657868685377765212003714965296530798077833395179370975326391643089196401386103856698153575108336548815193514282001274598265395985397188234805798762736695005853002603142724224868468580105846521660101122707439098167356937721827029821069746686445271024440164664091969069890841776557067519332942697896978356826598104389186572780596700624046218827772494158365718318016244855923520858876387598901241378203304681464291174445224038544372270180669103318769307427582445063332375731674382858645855809191459084946438005008289991090012697588171446690147925396399387366333554244109756175089240209605080186822896656738757434157334929868020916351087865646124576564138113811676922243132742493291925505788389927989189840862086087261804903867345962349471718033344122869803607250292393283907873768417177758545330765107424685067201000425371610201358162338699193159067111854419496578526467524283854157648996679960281536508876926404977012091284976536551664119802133229531699113971166426202271778698195052980777147029859474730836578034018703936242859970159621912066118166816715302934764574832827624885617529050689135121555495100062147135723000151018436837679984421308054200090702222958543409723382607525883827614487236210290637080561758307372169955960196771048543381383850080017281805882476322411935390758077506248984689348486493289801700229514581193249552441680701322864177867352381646055235971570108934004781068115744498144431168305223203717206037043993148313739194736176481037725220883581428479542482545712923888663242690711037495025941264292328504199370256044259389963909147562694406403264650556193084773640209261385654908900595478281581441973229848197873913912803536483381186689455525822232866867782663382276916070177510035358089493900051960769249574926219392531211207203880115746079651820769222091246017234368776485247359653597190943844444079968229312704119279828099071282553511627005871151165703721289476217368686848649824107745139382370909660023924045795107659763040440594527134400507122257768138787934708572097611588858074998966301297354927751550139699175373197279938812350877027956592733329373517124441832916397636857901023273568226649956541266039228305905185747295577172985876066878791063064065249130561355754936525794826450451024924935412811014158048518115468073142665485378089462251566471478333871881198773925981441630074885951755704926937586062901543033131609487650805054025194722251130496493704295869706016313004782247671206684684348836462618440423580443347617309281645507846121297517444830331830678139561577866279399354786171466761947464303032212531005677463141480372971630986761833371786160603667885935593872254885385979770931711940261112981011651058885441178632388604201865121885093316711788358687193751392805394214680717201933090897355273174227510916057894764607115093169632457519989548593226924503990075122180985733065103057071182224134507683257118017834586283111222307158273383762900914472696112716657650991390021711572281416917869790553461270607290217250333362023257924892575099474545787045398694409390281995320268901308344464137114936403338995659372693972886731896451398752605968967403525309370484661350841140182637172647061698196296160603336374961754123122061296360947995444435121627300470219300636658682718671991362944090813991233356115319237552956016538069550398071095879489764009694763989770579562758520731946970073175366109157746418078222903246920130928484593372915392351188501323316131123804910321584323588638935967795176274272759565654963777877962233730332415340517165934042363467295913103069714106473368089135876385827041931829070186400017260187639108600618735919250125444002580119099221011325867112485878668249447582716428476918980371311207186715394782007198183749316681092849432593961041408769049523646249871681333809463410098809249864116460652509926061842584200661877093881057980634801295624616767865421983638575305472156227472650639782832252555524055731437312552026504398441376304500423366275111616101375428718582735522738764810967762474977492082464913018197605291807848708821597694075031571429561394058051946289476272030408575380232668062477691373881517402901495650677019551732113423186242805771460993384732146592788477527959239405019349031083261746295020630064444644876810091882099723831622266697418446966375438795123529448814084577952763266349338958123589758149140302340338616503309842313685200768003698772911123248390855601000623008321439708323415735014018696583524729028601795766199445978991626292849464569284051826752950825578522511829747226806963087293835391881053479278434352762261771881710936886559890179120771819101736003447051275600141693296498575712245860514612244534474130607639853759162455440357000228573118343260555742539025199670729058714871954539517798365518674221547964121997464718661578009984504667800161879903419392333058618453855923817168260901497716314455757652711797636217643549880976066688589783384306586900857476237470186361737629248593517318352883264259743956682882822999050269356164732712591233969171288969042812571431284164843412681865765281045950169039969396108959554152886999442205809179534722413861416311860612322122525895700728956183520702610329223544261102844636657755653823825477324300664952333697909799140424888248230975458167088904131579223048321981932580976114384472495807873686875797230672298995489943904128368011714007297192496845753644561801062029025566452541919604327067737056656593375811723004387627638823621528452214528455574654786060337112544374131081092512898694392809663312237967294176245740033494331860160229116265572250168213690998697579278022231690814257875395906137116508286504055184396130050954170545613813968343790018435268478609397149832835599844334669669142195558024432863086383092266712455282768991310449645781136960487423377820581657793682710116490717696922264016743453490686153847462649210448295081894034257002379793705386489980244727771155412775370852817575916788324921533549286591464384376689897104115417907303414869439644172174478798325008262378442543316907471178502225471636365434637857356060785988005356441842057946228245629935203648774278900029083143369202127786014317307345653656533251711368883202010067906787551301908831231205393406642764893618232167196496994582104473867277762275651395554224591398857669657915003586638045496722115153647548284962432263826036631181981446981078210922468256399546574436862738196298809809998351293851683420426002516842992935870104647810962935012590575520288145477180437546516566624298935534886383006638120932010393020908781449429524255852108866129734396069813114124571189392192161280142058302862073075122389215466019750009214065966965405796570275039493921507464688791432663761434449662024694856101475068482100731084393124556341878661776069013668988663799808562693795023837666204241808579685032945397536153361270936474463129091942751221434462721281334487740811454418274665186145715121375531290433905509291220979138550515765416674996948277860365072875862940084474735464376582034240826429716408072272630946392249477522794220661814430556287314208257073323845425648749927289954799358516234213261644981657633046409556101969280339945820812255707620164576482890738979895109744276608083134826507034891532744446626454665488429151282129636512138074519022259665663428554524750816514638353271426396984867899730104772897652151959530487455973393253727679341572963101052119772733487997584707598719485151542867469057811278743794721954791188361026825392811895486363172653603904853661613486047695341917480437582989886393014861727996949257745976521480241532631756356654845109296467204450304522319810328253176802828051843335858833727898497106098570712804602236953866000911874625121365999635415400868481667196794882027468572742588471961574557061254689162794728991249006829378604640114807234999629859146285130828034744208205571586356583816230163631895470381659475248720493504552181369081761779849383133721161377303732857584072241746796414069073322426511079817033742956719794144876732815743644700363768536549530208779660974642901207939518929757200838664338732799926047543387169556617092024517205107055599927306580031747048126290912053777359800711125892117786237741090512349246986512375070800312650041969849238967514649858345110332475700874402737424636142310066901357076356328788582165589895984283253286613647280203979486233214545832613929804494670469960412037241142916403344992235038081571486395348650902070121964386869619744888304530175613925164214149016982924812885515810467516367685804336576120042325842856302982745282223214293256312269080658494061892935189082881255384845475983603957711062316151657100241672802214321275470258296712755886435744153866579867063371588010624576563243814739898046016667383263020440203808464476778171211435891479415172717933915841706357083702645181348975062027347681778052288060294586806835531370090679193666353868674811993931118560477031254316677806810683056652644691649406319731034947252067121465201782019496797328688758869084322321707884124103303515914117455435727230531094804422908525579469559977000724276637074198627198020617565737071193772987448738594992511996120447243536763877999702574095058117155769549146793925386102112951789372270272622628628178147054871420992426517307612768746442198374422119938443120746899016303850427014261035572462774339840392794986203882690928307641583663956578525561693293560743932016204129941372123385218410796059719271306627579585782902346603752780809223311406721256712249971193254418286534437362714445524629938472113051296535487877287974880724240301131223279763263494855836316743711451635844239416406321302101260029675009314254261548825283517715844430293610034979910765956242114592359163801897184775993993607477202353557079511511809749705450548919109459171219280659000434325033395568905467766860228611582600767087845148654159444092732012135739305838748630541139337431079680045633860527757827690926149915055370341070069137801091179763845194862340223573058151686559325274852423421123445015453628080461739380249959571487282461921590170381469653716218190059215740274096900948740473601725823790947525415360663069388003496852082266616802499898195866650567920858631028054586704167538909978051975945121427784747213247023360190033406203042924386235903456124043500641669242633836728408499482415793860378813383482872180510132212437429858377112884389328222077226263163343265063966413084482888747337210815696624265394770032243115527739737476551439736073987951336338086761633899757140234672838104036089227568360854220877231811514954877548060169090841189129387973632257551819473003308959140490371945725310082801451028446805877727382914818208558215915332601946962400629619790371396650278529305067853558712238374704363180094198100269541424189641710558324368512757319340782347165467592568189832642874328684725197615944124907194131330304161430346583387749394100807754360647724522265449357516604906635153170369697374371375886669465565642844051985407466155398370394919074904436683156991543133043142436885843502577456103404233536936040490719703128086460307632155606348101359924940415949862505956472324107133238019062157594179942390908037626941229866908747290157158205123526866908252227278587501398896064088868721366016194445219581984967852227237513996084408785418771680990437186933907923189295235876868782515651120762039166313861885655608808662386403174523585255293516945279867980390719211593272253457842647296005962212679431743708321048341392368456484315619561785536131882602596350143954291713955086140328879248675928350245599627131947087849056729616638872830528452688361839550054772093634701659717848706997194121318823271612352909240126441815385431383858733429373285241114975010945138538203847574360182111581214217014965069751730588416787119673674581698890948987818811499557884956331629234369437923856362166893327528341729213374881619058117634871636607829454857321882546393122250845514148254696395846209011877503679553011452331541694543041167236564115763605962594906861116439940307288706166419785909023261765749662639962340984473329177312795628875871045447855988118538925874934946508698705316813038321697485364896300134588301183908429849287201356070511309110325238768803132958833781220885088958910439826512842520220684185373433572829855050004852874590719065496931786523916317450873450164789712220940917696833967426249679187852354404639796830850279368794953484807507010947688505314350856843172565666555457437845632247248006840557623242765466078139648204098587259748502368970389264411595482438849490318163969646418231889095883945960207752382676914412889399302569085504787466420134334599776352560964659135392114736190912347564285112108786523136750995838700504999811575310032933435506857877737274140952198844784446119072212398240710224169890112199283014927267118348798511630987455898685702490631487315151000577605917419444398342934317113679741029741069146436993089097910720011337111420824294274612785975053135995266454848682935029484403360928070132845506199519300732753309759442149980448720338410064504611950675010288443202640883761025260612529999025909553640472505644109977076335656281068326989463645152989519227901270221762124743527260161098285001770560748179074809089469563633576684647007837576255491274261308240474118270426724251973349527552170067126904836723224466382457644415986063488060175873007107132555149100735695302798083522105836229674790853691389854629520261386890998226992689904100057760905259417470260136387060878546316638510704153904122292814326709120465602386541587109224810929831500858963424572043802608296598745811111081920366977559554290983929341792492689529888631267288528992770287085697668391150874334911811097137561487979785962935156592667468400767299687366152000555447433214033799518636156394912824303651794097820374026166530954183033613216517163814418052222259076688111663778580530662887257883284186041626177559209528211062334738045794474440032613319199526360615123525543265727899182494899866806735247675629137159793705731627728365426533532574249641359434489867142602499353399358454916652598397996794572134980013294114274648549829368573836202791581145620179696918785528183032170875467859101969977043575955749393989618201480127568908907012705199933579400806807640641454633781323702605768326946936001470224012080386934679580142630682114373360712735504041005593980466025506840755972038965355452129841413141996982387861451698849587407795301349102438858077096653016583094642255021943309764279624425763929038552017537057430593686108568219967416411949776608569421893813107665154367910971881785005102500959990281803372393847332320772510392000758169363702671196750012162186295154568625741058216983209532399592586977540059224034088301026969735357851176380222368927444324172453538680816704438446251446194925867142529290253165324691398331336412267283747168047847715159231140329007260930258653675718290465390872092945625627529999250366140891676509190113933686642417005171618172231704593321240543466983523520647805771575014754669699053163012422401048397380261777181725849549753023341480882762797914186546728414124363443281597535793626411770360650058062969008934177532239644093846826818874353203279963420464504108396336213244834651730638796005333141567781962092783396083723283167002743166146482209933524866789736858211651122503055246683454411196524137479268733733690172564928431388278428406853826576739761821407899681619390162960644907353963077067917619251684980781294867008097445339233761004842423565462575057117687711556155365738712578055680196948878658655128432407038576341679512126932547509842025588291022780532638741046833240559598733599744354445953648491101483732357923058286892208309993616897343464983436569099447507784307177537652488835566533047742959229875761020982513544219428578632694689910822710297141375866546992078290784414360689679268092205075682851808296008842579733732700109888254302234142284130801714008925775469557934704404136433579119591165455919644232687275287090213893846092863862318380057305414897470124795430748220313091511866271942500424039436805196870553922968928003597961500334812728723589370435374075457433346479685709191489810499313475507995730569933994146410831964858472249859567563428813160412986174150254552423129044068511891014047492448227907266176277613185493445413321068763225493518106286901967893629338834191334950141354839062926465308876560180367540224549398671325886529626711258475019777174294518171757977352859807537047694787929182927073621424720376907764621876766835178540966880556586434443541722526652397457379064195613159669330267981849987774858225497155894521755802112788052049914825943592848596323183133801177479885992596055394904851516796328911624618593766981056557737458269834666526891818946341195120664661565721338040561276797971674946906764990862553326779064241437232938112815949674542640205384833853422715760264921368471934480481290226992998427487599602449391817342380286058818825571331496625659371775804271377875164514821458211889952159070484088857840070378877054469734018531903956615246826984801611642611665844471227490992763136673046811046519894703146241833983630769088074251121098816444527665356295100296885281712062527768030282883093054027074433522846492945329431724745086192533087094259058495746365272821236661176392823365292718459302766370130606700170328810533897696315164290667360433433761538872127829719369029404813183724467423296208727019811817514407898286260241404936585163810968723674498605075808815519572595793867957082142685686518256188737504582347117101279922806216041923056367986116498744271111927486128117294934426952108222062056604630275422546898522785612615848776064323677205082328880233481287708051411034308343445108198517574662811585731815181180422092326365247683563409076110010118610726648787161769608622416016967629918523642217957840827266581752463212036548122224601035918657491647108014954104355841399963756859710914199818498888225006456898431778441565697844474668510509690683480277340555886507647239608493008271294130645606549900889362780166702967625241509141092960709623166799053561328548485616262080067757817624938521664958110298923698871886260643054350874164984048017419464710612734866706443975931303204010524573129668189801763511126416927680953807441730576755776176815624817807076685956617214349367299779314666638599796403495988941166054627162438155182226899593126373963641696228507943902727113615195363546658540071454816361580808875095392394891275306132132737386660094643358905300146594578610768672591414755034205850085121517586906640812521143115377359016721805595678892298368406338360798662385053557683057997402899881121022451041070911687904632812164159338546055544171168257664008599576724234899130345759979783961383297787638377103581659671217698865746514990908590565321058379516714380149733021909694861499913570588555200252046833290399870191184840690766450504362323367054966767474492658580645039439111643839898443719758166407969153356908261953972365837495769944866319981901356993920329586254710580158569734978603529621639661523556330654117750995671006651564730687404702991791140473584989767153410917193724400787379895335415330260413161864986448562525922493336643833354323923677893456395741602258472715414366016355523688178329631256942403613267911568015338606174960422281836039513641285673075276095446414691529520085882365640926921670782240358064655348008458075000140297632855073965389396023487970760278750285484836454274983232655005839678942080933233162770579006769260518168506675484886085128964270362355309140419114021926868603480475928756736029603942154769478767142307220685257584520530998649664758515925548850704034747116020893615639449134312362260787936267561935521608579977102983590573973957924089916419079649024200628965419947826424386603575615903050892111289529773559565062950077023585054403021531373535292434625483725210269301200602714919686498450173307065708339326490390398598744395260247919916510913970607824486795703899162620650498902454271650520154038732883263684713711109873789508219453455998696315149976666338677868796785327825650987807421746907082919218149958327078175868145667010380137962393552771057077163571010507781058065048887694056830563028172818549564962471644790321482293874725235526067060169552877235085530046117750394255322913876105220059250786183154805687020980247564526687768207836449205056548420773498628588044995406240970646241219867316957872130940550569532409190715288816997197908914350356512978422557130622516221781242294421153538398190940057829322115707718933512262081268506391341684242575310078703312119885241888141197764761597070380656430419455006185653017389087763665934435518125769230583998608694721467352894115151315874536370017308943468321175725853934214178786890232946501640773753259215608314398144274086123324379387930016004669547361854794987804604227362385837343046940962808546411139020098674705922883677142229566205014034404802148317388015175332109169260849487362860717777772851967466387443594148041510503091283385890088578109630200219092626383239372641875681465616740115657150514799318619695018367548467766811870020311628898686730884851377485352916503930268430450537854216665123992340551871824731845033128328349785866483211864067957060917497095818449039859857720090506966792258144288433461014162576783988923359769797800583035985392990291744799808263849879690971590639170063230933070870414134297958077730968487918864849251112916656265741982319898103629132417530580240125009668639758679542156835382860766968036967333427012642932487728197534373302064996601402303587103504159657955044949083303792788129113643389388846979003696847260205395201122806733252018777818694368727609918840588828260956020989943170022393975308251918184371562994517784370416680878725786499699563531604275898725726154125190176592361742542278926349688568038465706586404270561403579699330945997511839489984851304415453218727712281743117249786683660656262689848464311897695558915644062108814757913014424946125373385406783483326713732053268128969053193065387541894939286226392500379892551888593747886764668070245307576732594679721637685027477668988796617648424056147285974568871640198833362678810892101484138260684398125922650846465340173168008646238635094606044073096731249348894551490817573317673248882928840133385688224989370406370528800978237697493187860688571256116449052272056279794754071995548982415327374037254197313350293426149338243524309477869620199655615854621536237645439826195062610623554792090933710176086153901327482595002625630713695492448716974800899953711997532428596230624904049920932379089670376693703085782876791648966123067700549269725103257217962454836018667616730531787056706093331624336288744228954561881910491458106970672208580679100798616319262319429106610836069314405518199416960196314950911577081158355007959677806601142352481666050904204529007881831988022996772160888635338919861776632927949339018072124503028791638086184898743813871187751265737073441035609326945856494571109502358347333516578764318885064991164898287433405899025080701641184567072317327096317855488024708668866294812704185059357037961558988875701474636454646827115232783377525695559909952791981726864342342806998472824216781951583408048667121665189432448039309328225384234308258951854219074676032420987750097249185944047118483247387585119018272080998430455251620580604840304473470780568819216025832872573335133105818702518679802836971754695512664844112826235929357867612147448346465412975827610825958497239425929294761376436631474075382585348968763624041841393962085382066992878813505120388617530316519615633234710590311915230458433330125462303915010135982305199552345921811691873101079051173069502650416603034193221201985733118011529511948266037662611462217485489180632908747331361826494323002206239528742706131242485817936927390109913445909332223189435138423666738017871289800005496941890982839160090607138713755851278361001790901669697671483855331507718501524462585704690919319438060415060590792311083784217991899788566703221555307044130578863279921011634592996180498635213184932170838357994772030334906994195476284783710341914690302732371878353919828114392997525856857956249388994973144895933583137861462608137306014162024885261425429464977983559192468227239471767846210834922908107917232941296321387175496376492131879418437082534242958861993608434872057782599393029734936988075178184950342554517982039817152595751863846038125450883423781649377862589050230251007852605158812850460875083067438712039789321715452579962444622118723029990778322948212146297577194993131485071766825405907487266296401788162213448384339070127961478109902848330080569385671096811483782836386483719273411781229532061117707484728025527862729680111074645794238417132210747327687369454002646607109821146814127972658951101827139566807720606793420552517976160636660986197897237582507943912866957902570292674436513976753979679954750906284294491358546518990880159159851927521058809730604016236096999969686799166089388741271419911979642385414733189982840167790652252547733522099286273133295378336779662981047277872169592538530330910309842364760181113366160621343895342002444924779404791936456132540669452079711478288621661154196104904350864415186893661973434910733828942005937608001974404230315805282846452515468685096861217679856344041381422828730707684042266697996526543941421584086943043814800442819738409710448668119081249878412993764720686291842201146266072910418416043466785456381474648201735757933418093908574352656289761011386222742771171484166673210496645913037142475109824739936050700368749105796254628293940474543048231827681331533874358836689072321914664417382899227150810752804719493503838211532933378989145968805777651738757267807194225770152891940913202450220214480598103610504699415945795323065582668709772641468326104821216471269057708821490148364901943750660512775663344555705513368766426622792331958338134977712144513855900147684446676313432897325889624517786512424381722859353351095925898607919021853306116346110559688567986530285420923152341605453317570558671199432118316938756620547552175991688087869513934082269988975665911313715096592851154227465385016358618834444225299495688399558964681449072365956028888745053816195732709109542322822521262422460639949819751250207215260281501745402400461140383551590409558369206877047149761109045362564331270100801531649510960302093153184631533468083556334330854391910029457142085588365400002851675365387028427090000208153393739731054711914911276236605143766189148376584896451353655261502892330525398638545413788551906730053200385557511541768697253959059860963556576872881311258333533959771263946849113711373338096068386462322847836514007285363135515417102750696751363458951891810960254831235860081637098764122151259655115783098700047215050590716866977262685274367019405761291811659160943325620518902827215776564780726310924798862538733572741679740738529965376456910990302321392598499443257283044258356497691957480294789682760141412397710881020774029541828097232450574227036265319166231399458697500864169394070167661936540828299461347945586832338282156690912777987498759528562940046152505623944156442650000207316095278693095814733213903129656608523706856690226278962391758368231077018546205396351804594185945883884210806441749074160452569794478984820746411869583303619410013768177222887438890392439509258423951981418839648074756004548359485656845263500767297797241664075311103347204517924125411196231495262502298898897152993431039542760479315035989617324828687685396772446100390735795780361575254028368124377907386651625355434289002611775443591899270395383089407216037137137219416972572655374761469484607418983437876427069145025807875899852716939426001853136715263595715459503366165449508657745752340640827146188158325364850136719362610261084668346788455998894878822151826420976927038145026886981135028390579269147347460455238811709732398403393114920624644538006250496996464675863067557686787647619388183241397709594200980340768318495800018930269079852937372012111791897568439677024785995989391800974576172772612954619972226957402806925337371759738114552164695032665088090183034226128533585154684588154793315505302273579437933209306364145943596494346277064469229036139949772412185521202885773440725768397211705313034073890560888572757488654462493873996478582935394769044681752855592493220162470994890965875052227245868590841428277821258598164465567676495317661021514995030334853900861203878651400710291742796508508714141420872475396434544405063520838432868675903257522070856402783541378080458958942593692875741327215440759522096776769271309914262100330213974680087584286288283916769325949693153410108592659236279975377241818769914431916609889969626185934911120662060602234061233550878313230623639827102231783157782725360396636278668252673095895437027330819943476602278996952504718653162177567992775555492134369681693200433683300709568966113715336827169486883072092351106882754898423487999295217109769325729890312004854887336138452050475977955092007798727222624446448783397313502301674982859141454490995328835730307625377375510683973892310959885199525548502892956154853120657597352331250448555561708535505937495224090325789719520683847016935565387074720550218918487059350032002114740977094799035850061365397293342115526086367324576196367386068837945988020359028082601582873226984036313320358774129866678106973518605929136776965084138584655334357944932129343164716183999033516171686725495938796369241652861995229735601198944876840704170614058219033037624855280223470813244616207979880776039011175888110902679661068919166490176511525548445037287007533729196277052025980313786315711619362437698080300141605075918487069380658464899561726341538738733902166885777195215899672328532133495754168109206121787600714911035456546379483667022326389454996770608243196627187901892970570804782947633401679116767931361310781493359308688229964547682173134350353453478732146526539607485399802811957171461582170715912539600385641206887245771047373372034963065049205061797804817120713514412342130568988842346738082788315445047973726977729011913783283220952985642827718525458865765048217255749321526727591016413167874231077996509246130373184192275190172825558944290548267616385937940412392112620345727261556186882587683744573341845997492229792913387455679087684835970569935211804544360708453853612153856948807781820358361301485218977763607343127692054377930052397322807422093267887657287930152316848390150444852491883071870561450326847693048801615992691952227838033289638823615237782976771186993626163718126945847609550831193343844353646263046740516121226707062259535839225719206441398933006918650661471621943683396473415141987814048889916470274047990257454623224136527998411644103984501740395624138057982780889673165511073796944158938602210772881499154094030074097987313027104021201231161353294735982728622032474837493803658328895879358996119522214555339472993873477114664289549270974295881824502285660162665988915014877026534142156105642595091452789382369911206221703288064328779855149080442399597246655831430900496579472367411250764713956282895601160774844530651754641022784621150446354202842848644981262728867470793343217310005880149885489719723566661414299007468992732316308100004181937367677811432851400511840602342278832344835818825363669422466882478346292155794376445582522448095134146492366109536474706498214754769729818028299519137886776317559209851403554446058615174305958334894013790211544995003201218053402854537149358645385828969400825307925616740419584533902777832739396542296510277954143354928176940731204919566851516839005163063604460578336573646370385259130758767761333842975493192765902991123153470229780630394833363367024759116756019496528522429060018124866284998663686784987425357196710209584872437048078222066814681295253194377912924463528491657035218648877647767422636171164343949619586806439932950490279899540562735473287085279639612014828465599106610610458130353831815678609025359361584588786629511800029960616728839633753679067849459091221859803836563350783860516143996000321585786584088624152047412899647259163752946627079232326737822460132581730215245776208965048029440082031530813226596765242045354932058044016334812477749340622432232227229229793550263997318028736237033747960605231387398595297225920502353204625968472693445143199110987854904843463249414744036439146201889429310097897654770358214784784771040439177078148546598061231497287727689614884363623045692316752945715247100663650206182768064926518214067396207402180856910472762426830447061574750319716004408103499543029620826438971080963074286996683493267227919876990048195776223976240467555356838474970613463712965483936879048410306697366783086318986988654154953317922761014222573892449335863858148279924699309089617342659212583551621849174128937684622744064239846757089593739293601751495004120056566528934750232626486418474362887455066180824312611703806914253653942332489706747299954905603038303602109758795100798847962139865251800726929895906368684372947663968790437347844798325479946832894819968900841908128036750841216150292214071759465377948779053318891045583223563656482721939253983433578675687051369383728095051006687655013954361553480646105385852223393053930697230815816521524086392197713719528658000202950347564374748984535719361567544650150596628879412038530585255030260417849168166005433422143350491345366069590354898178973756111119693532223438714876167835276154598880665826446957687591335860303113108950454238382370689625595590434195553837395735035777271831963041940785226164112818864925964199741425179208462976527813507306004346727696091403272710576015500907582528367187712252412971687915971572500979507433944830829895391863660858734391641052262834183390805906167798692522369009803803472935819087937363809488351287753542431643545241934171187783376225653151782590650395847488248256235589135705252190718957159302620884712441673365656136458172794502317342727742430185567976579758837183484329860245371651407895595332814721536654952496314785654933243581083860409472728898792462297430195345879168382536746629155402237154459973334123827465698613079412576851009113814632396317353569586971648815143328934367018806492520551528944664647362786562700556490593397035863789218025894346835942331075971973875519184068952054631166896536387781181513052764810110027339791393217145529557846524748362125751595914871289755304189374955916051182574228325186738529964924897545344308848853011934216290943440520893697409623001132850378323169437712330200886091441556860409670185977474298278583180587559547778400166466285716959410079044250399721315115245506261040034614316789241935007751783848249366559452931626324414243427625414968713860545437162094200246970987493968272950046814837120422251605642006148405332793146425981063053346425864979883430572195949509857248399847354399802312616942600315628625065203625664048835349415262292959743783723940380545257617075143921960308259995446849184952304425402548997664424178470447900672433449126492506656306324074311885660733796039570760158067986237505641862556874685861547977893912758283316317771464600599873997396731767783121966561588188130187777376935573280582379906399726453945020608998521128933985595788194218281112146608761497476447981282877359735466703117921191608344599525205505238083464704784794306565740233984531575043899485582834538842357443771121062976421938349538174189991033181512126749681685228193588792257205621764769390230319952235159758817130245555178457597474377640894473798805327831967341837620562654448001664866589055949556370336826417550015968948939268141907782250395361107078652606887041475052656464634895066651368311702747706887435727673515176935134305503078004716394239795744355175342245192906572440451289583095967281533292059747817862134889653408154154695929278721704237785835992418310252164133619056281557105118001006600585623803467282108118697836986268727898579055929053384972138228146066985558778837485094305670290873853971522408868395540266318654317012157659256604528469937299897171236524434630842827907954715521474157988874818592119950665301376946868435611208550981793301458383039724594546186141510859014749556669209153232801866556958800912455947572292826450083729476869072129938396482313908187135647260188101299873375293859874739366954904064953032208176637109464053132736446667794362698979492337625885440644263673878777671193773955704727139838309602284824849977669713239029149987394005811538162197085649728782217783343314714025665265238564848679814824257517719293432507533802960651216704674808326367316832937468623558357788271214818589055116556912517372127465117993310310203379070538824957653087821333973144640510819228798376965251618504402331428612095671793917763045784571572365981321293954000700179457527119511324945607209927362913708145408903121495463847198658632380372398887019921295798419837747934782585112293588766458567514954999733910814942847526719216215858536274130349187075696218406791290212950728544027907558998285027253629693361522422642066753675735916661855198048909243193310338209462387757203736484379977449347555974706227964993864870960008932849587485332879006304602257712835428086307595026137120882858620847601876968591213073600379818745531182144372580890432140215635460914916059137903510912624526021406987471315716826590468529168862388906915425408351321794292542644103788178126593037043919463368290953979986628020403615346140067618734901415522979467279932862050127575200561918653593191567275604047535595697860317059268911181698818279338210648944597142158526410656975252093831671148502607945184458348229131143073423292066887767858697968201449802952614067280959902494187069173069967701744875206701595968887013097063890456710653949247381776188768204502565930530183651667139288100321264673900406088301484424238116554846042243898345069857408831959674925453943027677483403970372588718651679899866661628928481678885404950948050307792998904285826146137029366217891082825112194088156216078223809557101483242127226714191520618464711095590969945909970125445654917306515519044552390897031605371499848854620703527372669887244896170026581786688149368421058375681876460819231498734971894035719039958058787831339364646170499312919082071721902732209140140383258313545325876109187524198703159384263427742424629939054253981018296746124734728353249193879901325501469287830795161330647712419920619861429003025835999436152406469347944652852713132009099511998229871812753580124578387622624147586395406334264431114434218416787026139743124518078519177163263528485810855476744112596917884570898024075595127538694940750123944809074060040717947201299160583950207156293096581181161715463240811707776851894643895310994231088080364342732626252959049961461958540079841313245263302321653056706678013394489558557184015639093856264113282961059061579882673709032353509269398971894837114624863233088425627994003059441662684875558823440635864757584968797024884867719773721115173362589321575039050029139156621753057943860952428619245661210326240722583038953695214648039117182381820354345342212098618124421504186557587424157810787824299536413538115815866540212966713261657009934866817921818152998905609963924946820486429175511048977352460835110555852437575259697790176512131840575171492785820887450994265195433174170197637638436627733657658583213265395054689681535992001840169365778673013160079765201051897780608850110799546770142881626404504257657510264019191794402386962617786572636130695755290553793133278761973954798439359276869810838987119009434948680580884928737579336142250536031124216083976455557835080911445959472767374290221325429854055576699785951622571836971934686119862138815729524549823780151397795101491383974868698685121963223899201403413783877181879681806827740124151100532437570588540735755690096704779607268797809463536273330932134958270458540967511982442298625973071483081518644202115177128430399271805920409476916381449474893308309498314031904888971210871093083311180870273643957473168862129973771696285878356245410156561462470486557422785884632566749153862293134344217346324816050922980563988806857258017632241265290267609397924527934506527964675476476611739991775518672328798385424901235025846009249793232720081205103967971990586162494503649369650390444023687144400978166542432039197018723881986420710021896389796034375915369909898817016530159460595939610671433968116671762897395685763727770103083597081619145770160272923081530270201028022931350015051291266749318597003070096362838419451735816224850396239193286989287781962309217885771375486890622301686905975106702956503296249741673882795053134051870496081744768404017283406271112774418588397357357757307728513331444762526603125799909491594428681934957878910183096637303711391024812168642433334719700666012765146085796579678526238238258998733856616400874700295620834389467510377716706625670966413566325207105773595047886033619520409844809999283054072060080358140151455515362906725910362127060847097258407594820127908150215772332875563317705550259360086723495319121374112263831657230166199945695885294599960660044578498754526972848963082021396781170665446691046105256717977552978624328016010006560627767211171128554183242934466007463347589693831377667558994364429518686387975595842976035469513078593674875121877629307539536419188098121867637016874664600386840565283148391039020530583800740012015533804529378177970325691879797310014076523340805732459965791485638824646252935873707353901059988795485487890011581918986617673300978824251179627364911534146805648833608431737272746558861256212479365880821185487019792447897491954428971249211278742509537520280039488606505512993117933793062911549955513437116088528853206260645292808731862317787145756489885504953087124465030982245998061848497508349892555523169137349035354373845988133255242293934722383211745308078345601569818983876955199635919603040023979918954738547991869205730044423506988038706923923625735403663841352775443331590171990904321996011615041315855593663318965747649925270588680261651269454417628303660273778667898256233888110344761467454690475996885804916745801810310350254799558512935489127394280766221641258791132925315228946006481177531429452774472804595051495770077111167434949171073729072473737450064265263733161054886394340079991510621849075802512486777688917134548189989873409297910946274097620323529873308361972163267344421564836934423405985375828066930777310578315322797320317200700633832904936124940900546964199452252593505635559111633037268231180047986371060369721662590247575125458370375325197851056693572287734843662575117323829932090328455449333578967837263904252369626511381201942178364169848065476233389596084390878472915496608574244095008449816054773528143140284867408511972980565709938095371433698967393834776001214539170069778475797255178784817853673453557840835148466793266768500455994742527952007367987449409904036086367452790869723732306653999878847065569998832636798699760877277485489450902038896840832714956655552153986423567494231119506917371204038210211627293980544243735308836184323728628816781853363373024231912275331506371136057443820488270198296597649852808428109416113043454073000310658027406784874784402980423501778709127412937236855682835996694301203218293683506210419399278540677797321684635532972365016487360930126124230910290276190345296174142012922904505813072845443850440511604026957563857308648541018372052270590549693586646737300577474393107934858245054799814848267995731324460628691407475971549543034914681051671848513606672739786446858044975869008987543663126653110677428401017664643167346242438144671353293444286115676222650510317455461227817320702024959108026958635991815995555769776518588259867790073353993184848530878314772560267232078439164223621644012418262792073265048808204578652898451759627795711253834624422566259855860711497308456182270016735301892560676693791019492970515408977298582725253858984947268846456257887552597625773492651173322221477525197465279183355112382892109357622452691697178202318887879033502116704177566537167208738675615518032695586394681133091447622013254646013821452154719758185596668798708428903914215202903133525401778863397251829459396434937833755620824670818083289915281637301890521498529785296932065922345569638711687184402279235973948763811529163924831046577986142270965615744735033352382112141037829143494618369275767590726411793744902155994555205601342663049751990071099525273311371067051605050904889338544416779280603550274345689844716856864709143716255145924877067952581236588954136174461598279782432751077563224820920515570889357499516670849507613333543245168559189524092305895709062742761411758485715955534074074827012356567627371526849524095292594768925921390567464943423642438726046892247764670768268576706723457272489888921924984124578628821321628339512318805712801821681875727300313958556894259102876955874248487994978712031509813468038838964369447930315177464618952160173537522249921361314374050867473670040389860107562500889056817080261886860364537910486004539683793500157032195099351996987580729353712966176976989903543527794990419325263615025237397713255904518527430081490003764606882750684379610121084201652130285932889693003972871553962715922830909824285248321759050940552999814022769695914543428799433987499154750732863839771502619532038446117334913993761731171874294899257998022477365295577962856990325434975845759872649983661264366178992220771906436985059873855889902442496266317188613832094997417758739987404067136468286252268359316766435085434015625159560925008852310170481370795711646628590955218889238046965126902085635856646191611276550393453413009521379578114600418783353731000117688183440334360314582605983333313130595770292210433444810552139277926903324951333744252131544715282768001925144297245664810844940855316635196484454306090876369438868729651310993860448207709566065450729027063851794097182708761337758874895633722010990669736503191234286477980733628388531766428030673686111278228707722432347720341969372628605239438365096060874833070571075882652816060920676934221732611169441886930917772226501963246605057486937755519655782566180750273120795689694806996802479750450743790525710199815532962150827602794302900043898564677986286890789322252214972609301019854381319927900892458279139845718669314826474276614559536414213718021178464378353003675922705366969132835810819588911898316878743905936202639448888434402825018306445008148142755043014780930650240678683483064329101129913727493920881129419497685966868461889211336311027160292258822863559114249447674699641849732916752297198571388363289809081145995151785543244423066182503146006175879100230649773670579422588358593249072110189945521417454055895499789643977850658006185020227514097888399561953626456270603708604992778250507048601046850279501909554695412244455859543545962609374850101498345439418642391941994103139295802520678457691160251494273041322809629916205680798538580424097744904530275001973756775405071572934846947725333218981069266492535159361631673434343559431783409985810230016463877039313311144687966270860987698040373426853639159254501176163830834289926034986526845023155296857308492728946674883675974564224537121135606912621420303532159844132376971707949077506502535746785552115790900507828717958282781861773978445479652775290792985170443642111967099043465620503492991758425929956552533271465553969150260723406851180963476958036747229824918477263825187930209414339999889004214036151661251986936465214994765160004969338442489914693304387424511469653700510712943423704067472568425212618508858363900984902569645825672744989853512379176004743258003320049876028598490451183257628333306624407892860382066688112632274492784931031352015031721998602691826230438975997210083200503736996310947221592712911913438294312748277044307633345570098149864643960070886695759010325331973814178255248986431209095103342209503973571169799379250272500048193755965423507169174009591396375547290540396628205917891009289571682482784455631353161511737023599444003708862711121459982971022442345609950427848205353116545814451194589050403645076359985964877472054624294742725715987297902311157438874145585418747530793568725380892196343689207803228344533096368352535757070688975344732286976677590837980653807786328999089132530625641821180525326574850566825504307198137125106339279886801015221475697590118760505722571578620483139710741397492365848100369224143755581478761052833772613803205229417651868651083538837572744635853366134716747598237199561904494338413758614991188217058160870236176539870855600040600592142397318118389129675727003244472422239969441252882858214349241365055885082088591308233550395520162360280349834665538869515812762112845621025514009264061053720866597831215458049717733103603541392478161096485314368970441922710974942758845492448716215113377824764827415371335043100640210346566667219243142599214484647118858886914476484431443538896331203898675247637174205571648596913039323303504032992694922065260498570227991513277437614652805317586940405310218594076580051017710841447023819933233178229916408685565469404005198503795631790893272650559823656797952430383644226343826988752928427932737872680320595508419799946927295366402464621904481695826640185877611721122702101556766813959092171119383795069083341341519107761378452751301520632585623062697533293899318427923713986262379848862689849651203164953529860113629583456710400823115313485911097034922061986148746381545810513941951240038138805234532947477550953686775839062992551204731914484285554337020890028866097172705341412648741282532605158232097457782021306735653500814073202783772402217764630308740266284573911111273493160602079568514497941780202098166660305216349581313568444377572839549068166580655885009785698096932844270658375892494136714037169482441897391301533643077630139659227229709948969510808289748895669874627707169978822818047565933622673912535242470155899678359992389538137162663533487054575624951795512509759408555317743744049368182697519349721814036140549778267846795427325571746281001638847136593707275369287649391736910648422740779150748310701060004204031047694459922231374366662701603259556153303921726412290141006196150580772383478290896188691647345364555864578801582369236532679319289304635245233868494704557112456198022272649411162499306422595349944784912599448291438059488166190716819388493588507303339268164811694195946372495741037385327717283504547878898006901379369343054215259481616749970120863238980828367150110906360572755120665748449645130853181504720634151260079745320157211870269681475204205596299078819411039264383113331150261937399287792666257568163794046842697831382355608775828564725217524383656387091017176409981079186148595221878927161327745764948565065192090131780080542218345309747472932581034517503780330856190985662467689335756015728933343763626260796738541422138582455648598144493395058676111119318195251451064097763640127306924392768929118968856249277337216923741774418700086127510936503178967081503619973553351187421701058486486481771799130705590697031934581359450202406890898514131598541181991138396143683541811342445856479207409654626653822218319505072120705457553529623540026816890257422951927820745297275122506839626624423850392977130906079418728533791996092272706328715917664032622078903132960850919157393405862179920934132704107036428422986392703935016654956694680079554694884716127999192584636491535773822253856346421294999053053183824605526949528963822004746896994226853119535078313655813226897254410370636846964357784589767926879334308664405952402043098443054190352488030229304123135531176635948089295821122958283026693946635763424768434321338210640258297869731649118757585335652287458946668594623723290614430767669811731995877802083744740196430936291364885455022339300556355764723154324202538853872858078789121519734262471259729102472272765390288601772703671157169235931251666537393413603306838679200116426062899709794313804554885162986551093828151696875563102580340341210100613820285325735655383589197758728591877290846686052445082828094267961285472158833297299492915636750386126378705597238814206075201409731428138002320288282921216689811844732355780045281103554858567631481983384409139283236352426558903452011343501566643280905445258910813043170782228448222882355445378678185936952659325613774061999580355614576853908222575383023841616650390322124620685662399516290937668872490485645018888442949748791353247658784227502827724938051162463228786386523370496853713688852712353774650226882733030693800874876196883076314504897182168418752047320286450185191089296601606835898086349927994664308564941744812930638460951569517385713278136871650021819134395439516591524584359457212388351498453637777811911026515476216003941527155567117188903340997695721528898802513045688961030438911309714071730992543166702836431413490734281006693499586365742828024743129070687368518254476974519154602216122214889735536059103049540479255217009691927126913877617414299147587222781198302339855999053306297246836955339424036068728303136843456980937530086869511871576252878538309207150904942688464034699298081604158182969956893917057773535454755706729147239589706051892361155267275646327371306932594903046436939982691103745204072686719623071111502186440210560323178911333400389462146724980710399668858817654250794460620855288975383538658892768300260194848933383279783840170493693954216989482400944958513346550342348037055947967758908113668517447437737080379418502449586826608422283230864610138702222607402231159425578434026722727311548599637309551993017599638118370204346487114777586732985762359216397849687696646626743480484824880822607466430858333394212184777292377096836071290117753135459718927063266371101693981491828920361538987501859111220367347021639735466380189045208923788830910526691407986890527426100179106872003062972037048765404895321913416038794498069838876506319802621460471891914576600469460686503444361144327498205784886383516189098181173426406688434645900397815004351918375086197482907143346999250889276565067453753058238570449905677719004950003778886479051606871093856115496127963524655342689977848538921513419181730290872149961392895888878070799322052703735145664070920118111778397424225985512077467044159578739381102881895457127009432033742597254670804578207380733226828418804491861553757541771511911740269513163819284284836070960317032082605621308478777934700168857683744015019921306987048832229541451227432566509194405181870518448032541558378218101868198873416667412196711441962367520594211524676561314524905652251716705028133448899070920961895877156246485044019906032752333563149446683406800553588447011420618707975274412841987875051641687836313312187929819782911805218813533594334713188678639509951003127137919451181917465959777104598224185830542610748309434697140866761591237511143583164478597600951318032837059905708516982028821918972403994302369575168342942785933983077645672678497754432495122663549693834287070262295492389290593754720688829878843613841885591351873866022207473170425359520880471425274310679279500917658063108246388277366417403922345482404278771830964846002626046543847778273916410704617123936531851458138504008047630600138670796644673396159031551421796998057877054893487246746279556418988964037272256481479928515594682910715866695479838763060883640632813683077842981628920245418998626686188098281365018578417664242634190512827347754110051260363921245737429506521135210759171958813701083827441447265190250172565064737492067136084898332825857909701740166671269004569046102099135899057681484919312083046637311799928349383445807196289265294434748598999540055733873214924248128920917936036605553421064667297214583094999930806169993291934679364625184502467869091189089009846988835518155803788108888115065792315111053310626421457434527351660830312718673361186832461977114451508942433803794843781846572789972291521205562791588849242706696304829947430938549177052342161796058394521148108173837665528078448876366314897033049673984177264011329167713667012452374532723452743469497617759612321185603730913677893070281430551996688874550455811451983391770638703965315515998390597402352222332932548058942327565251964170175237940195291184062021384154019809503164254867140130073528340060323805268142073619357786057936424545395829326195448245101028160142815556799413299047957151455808934753520531316164147347367888059961671240562798458548249277995422107416848491418953647431208972163393722151433240666459359003474973278542908193746511695625212609781105235917243860340104111633033949623006892660881618740181264408165100906627714308190368955137830064553776843638122521120296002400145335237877183288815218399274767336643114388810757714823671511573884043652213050195223197823440930952187647444074855647390068357394847729362672620772575804249251928700819552753937466245171872079105213908915673432466925154062120471289044922904016496650658993943867846375464026192202507018992405704656931200018530415555645196943243052940790536301510318323644211562757238015395383734568245328274499521985237997288416991677000840593433421655094680178558472304602246243808365849679948074975703815211424986601244380279513283481116717190171165785279950212339396494371967104934772672727928738622365335144792084059058703065522946545590606111392057937537199594335386198209384230197951429449015557370755661848351225552449899910731758423499982037135607625158450208503378665680813553762273552969806521284046268975709320141269516496608082276485742683583650204776991579534030633943829951491367995514366291135247515967056852548152535374710043091008919565246895604969882417839351632253225158777318556965226421135512169277448701033678146259178590911754788843160986339987506765990041576503384239677822231584463302793364075725338543116644573876748237619805343420914402102910894860261287947540588950761395866640047754591665507288507008047581415763528054110067912437025289472396458153310912608690193969885999395464277606172904542190461182098848148412802463588635510684520597704676276505381257343174784018672605699336944783384076584814957073381257490486883519876904585824353768276222383817101534531756321966299598854243474159831027935157576926837435015750694075828700098634674202557168713909870971576300452541171836939476302237026998347788081993961050296951829955489876168903816006468031564980822156312447032522573769745004577405840933619840410575221469228180894970595561367681967002338681968924481505868524670627519409335547448360416269290260089394324478869910811323730897059942425373333404665026013672436751859399754653067698450536044226459619755405153495254428429813907203641828580715922683389769214470812459782358415098495784363647507592298148078607404082054215318146302170171286610311690106645622494959178214768154035783581777502449824169800413515125493515051411779001107343495224732290069529597762880330729254813718674389945817235637908605288413763310460704919474629550126599297841552056477173108816484605804591544324940313228188724988803875934956881073246224025139356992679119176063978303777489193227698936570835901669231707667683401728995228326327770846660951402802191878732367317680602875661887898577077575236782521636673500564060633990380331137728038884475716054800920767653999312633861273165951697671117046657886347685399164534292111413249256029302114673459071319117291398446733820818116839742583537075261806732079259307450535419803882776803137356743270123698609566314658608145513979629480074229410211919211387933245990852774958799218172315276492683701333024633286091194308764545561498928328722646877001647854261395758063818502280818156546993040881637365980928776017387052563471803718528890341266269818372512458716256603157606696793138054991401610271137511313491893111724709648751003435163872210221453640012927693134035173149681416091097737955987757510074039658453773380243397627903181819146731395795028280958372722157052222129211896001455843172549368938828846760360055914106058383663902819364073970388470197715996281880649703422533178946884808636518210939224339593203496815286777743566554601522075700983362367530189363678581686803662916325762779686088784886849497615685523833876663914077942556116123819427594797811594461482977530208974636430337915740019108061875880627974702689548592059941187220025962135718516303279022266768229782637300561415339818769166842116109429861245924646716628432361563674473285195865627745804809928584637698308671298403860949160030267198293390263048343528231286080982310500696851561001301291164955740032538353562032108547436228589415312243850872496576062655771043699704492511455299564840080114367953893130878795017481600183613458118883401169011526766034007934554411390468838216710750871378719937845152255674393829795469329368150086386875610499580349296555057137305157744405710011646074171524328276341278589009078002529848080153541662345894696862564854441318814775876787028864102404371288286542529736993388164522170021851208713891792465459748413721646010758661741690387328063130817843638881304592019939883525080602304552746783729336743011711961707111912016389859445334383210635496916485349501600953828663500919905660293892911375703331952049453223824232613820683447148485965059285870198450710513881079835506084689142192042280792525987924592272555569927083299590630454895363337542843520642726150026028150731171091168611208571021627141935019552007869019759387750425301702750759624122300095394694294363875304426593878823907496031400744509603179980846989652970174997879891302896232547973590467497798890031310833795447058305666663225449618795328832764522640418954302580349117326039754518943828791863686377021375242481547843432725406017923848542664851769318670757558775105770515977311403604709251387556791422460911651195425507636149821832356839247416320636415509206231140348118370753986998359955978052322797377995596015550816754382708429570745181980474679800432588196938186843142329241594494861169504519129521109131050515295761458750517435942514363221037534163707690436479735580467262388394669596005254684608977130377964796340535801404191060965337794232933923074248718041683624889600223461483241232809130745668827098377653777055293667623740582491160984998029867438366846954236457533765171126067618384233084909989979469511559011699018692119546629489637743239653691245952430791420502645093725933580718780273746139269843022978295891645783572552586680530849139018006846768682649611672737027411515104911026964970789619201636087473728395873116410356542292013360752803300254651489945395489412526771374378526824103313529683581862052680612924960362345840515956136239625791941977330025707076020484615850657585526473691776973566379149277864655459993862651874400748729037320567207817046346418126051461082077664651155584767551032290215989540594175955805135287857068615584954185791452211540246870649863436214848103044561095995778337537147882502009130387935373877888159463789092185227445168229636046097880571841484265922312679538158219445836930989453668937146751451956092588688763077080121568460293621742653271549147612671079468024876541847510106327719501768154630413129511931682497343284695582208578205201464922645487770048618623914655607117456425100310792587351587714053531502486538138456389382786430514166599029543941241240183786844662485150720572844934528763652311971380899899026014465094655626483134751936350280103592290162750375963382456886527493796766005389337877324740228569313162942509733677311702067173733988490757875652807575218590713699874712576904628219696619395610502589989414240503259736106031208027223889855527619314954016284350666248477044431910013850764730370602354957326110511858996447832811029181379439057499043027404444569392391172953080329294793955995697709017684785419671526364927322440403889676745385978438483904317016949949265998461341571829509121830926209313365348613753526032251262350658268222907891527155277715704672847297960757459498328479138167959961063295161539357391576539916014399016324655108855060230915975967820304526856754704682774127194074566007863477167632105238743923306701673650756448850006565211972966215447240729898829901660194333775216692795738243777381327794231502308743935961089351414346174548447494433196449783085939090660596893790183809963475260844292206044097807680438809065430739275459467905694090769445003990936597329011077379013022388441208222501523070400056993826322118803175804678371898694319588454355770677642534992009428346955732502802262733608109596719411872488207814883599646126535086056163113142256824618133591284151047082206831511698713974951987173423203810426839393430605964451114673166812047155033505905008032559640947986189837469026471998692446970401773639410713129575019738836725531562365298940679914178809732610346819141197408419846997933169044501799231839789085540096992151858126300033539015789859353747073955499475238799731509282420054272907395528466031918202429758662952790921711990569138405791832664317461921345566575885724363053527065918977037130027631255618848928248801828730946608408977872724692348135408188099433712213978874889594194301221234732909035661440126210428914771207488999770305985758673060860772339039087504221785574273463766132617221509918377743172908895913635018088897159687595392552718719418228498508035592203183382132844743312921320759228820654198306452065242904988858967822360125423131289004122535239598636980153914516989168741134627783601999621024194121263304096442151226477378368650011038216788585323422232984570653045699534866509713378698641768877098767428091390111202675597427712029402854295548006036183603468840460632844357418481130276057640874029991201921207749358599410850723745297344785118069740921236624505941955934842505116126514258895395749819552175460830200235648852406524635773356129848394507183673606636769569287716600398974636609776413383731119669445890576438599392391761211610899539845079535280788979579306943848771122017613401259673727845059912157446893421601091073336954102797659298675379597551320551561320231475046282610987847413920920477281476681619247333978433692593839317189116273345141589242153577534364532419293123912720132787921795578437943139669430159537912490204031440260388516549767330401245210934103738507736219000945044135443507607813487302350718463495712193791546307588712606025780827454565328725252407544478933286208565488073712799982881065204495868957181709956363555503582548769534599431550592694375665903399317347345108682336072824875463466093101605602537260356270841602576652100189616154928058500130069038571238904725580544732303178154487502726615549004121102316733561003256473469139083136066829656706493387098023740190857202739507101834936070248977159973557595289706900176177626789352815712105670393155635737484360930153291657720803807691821034498830349348979635759229864913106069010837843409563877956024761154263050897055243794249811770021923023095510397402735072698235982525082493359948421938589237830537368664463116710081892252163628255676994598067058006210024469869547808944063073285578097438020752378871025718394574469166321926425793549936157664418941639434252687533504130816273063576516482395107010043069073448577971504144575225827286878921668756448359660981575362933679216671696479535167801240819828293755071914082243871894068666657248119931489360618527140910704016713616296513685506186752451829761122184484741991780172707662335856932132190083922978960006537694595106739119869595753444928184806198327227963678682569547899259926462198938384243266374743910467760069443869533175204146273558332721590139183100590883485892890506172386957192161722355976557075730084599939271377444194972192593403653956913993620829339810388313304898973867325063030177962062266451304011012040610806867918386136599097299086955466790761809014843393473932705481963786671435785762991211205181851376772486017284192885135753262398037237486358394718118902380428256135333048582860462236054608521019128604805211416270002979740386036689917943142417392551793609077454534167183091909538845147504745734444880919985922231252961447256055286730393913870717377480774910729065745268959639094775230692229972074618227849112701142877241518337692308329150180215460935809905406501441942772471748550845337116874713449494106471798050931220074487021806536922351497179211306227913707599651754762528297312863741577621726188250867849704376002811778453519013305810826240449152916638400867001593013870228880897096495474912250044154631825083881668095063153090916283311856407318329160083158417267748468296218331132719668012115956462549983240506027705771216141482402784346531882699446609901510330916682750124622515291697715624800041568786483416113243121112082843110421747461518276252167970927936274854897238524786941570478027354430540385683986944398547321595083623581471714896670878810918870245426777393829725700068676435808864895558029735168847633126672890131718710121147627696847934564142956287440879422921155724493580508828755985812359264654296850505972846834495699192202072852320822885868639672550317096533714731427523490021487102021204537378451621731325565042220803915163200759361292172292504734163927926129688115091498426194188202871507516464083317124289505545263721787370502031507637222207829123063297835857543953279190237419802198026696359771435144462734033331944050262993847230753641216697423277052001650295266081618723945130926502558263952636427209621179525582689232240267495178254926666977368855034022290510304899036902495371403984551824802088822946067919349420448357175947767695798492517534182908951109384206009806943558635605014945042570202757880429781258441917383191950796516041143678580790424792799576335145679652194265119766322973246662484847856809009554620682732317578761771923590334376069201326938093655721372110532708210596729229336435572217550913496225440348975949113627724233153534233704444152107678950571832310890254068506885383547474051641227124777594170853795596029846357737552979370171102293897538583110920312932282994707025817740623045968144680285169063525287177546801647582344601695135847627218930635345653572480404726937868473180236856618428282451447635776109167473298949183295020056231282666764932747826842874369294076539445497605460972864284915724010100600219127611805575765257849067561126325023558728373096151330764122457510534924208904135021602553915766143790751485573558496290297840648380456891321311245597717765728347017138659999334118894375253531522556438518623556064017386928636381435167283768433998619346243707505495075901439747235660065675755024523618799452803628452091898213076034436206916016368983199297963486276478650401678831069094779245181301396625457383056478107130951532607965196195245632775796640055857123851332411786931644098498903331724473925448366018692074163223900401287175047244397454910885404871972677869751858572035035259541601393452864689910509844348408406722022165749521878546798602838997487243297279975225849914217739093636110629099293185115608346773210595696600520213044528325711192435652804395274850744382429063317588782475713655697567967034585033220388885495735726233465520643749761845259251022619804174134209062892558473184727578164296269553590559264348360128897643439176897889344348892964170598985609706462181530403347441241045833267227737283632983486978090669031867677020590061756480955159935891737201105712260877371589595636906306113281283430558738277771504412234985067197943621056845124266663595726286296270146083282338084523949969378231944445301041070479976688597408484516271186498147853833156243969905355418622780634656757850551004275415140646788745963041937224039840855274777636486297641400844347094966293135939100476582760465179396030640664296715234068585475186312190410569954052694611865624187512406301639252195666717133978980310460231953202621429911363597235949648490180773935456608662647296661326503564876684162192832786342981293198438297522731184894906306780897155688083801840335162071195022558229426489591591034238444245813235123029023380080410177033816906652544298502681076256261110510296014067267347775127209089949705211554421361646586790557132488043371816112164789916286357244332685545841469049720215996552427947607991396976305797090647154247637225948686404409205457522586371803132487468083800876919307820614820294046016140530957014207660458160724584187058611641361056018333561869117983207028950547025754237228130453266412752814289317401303964927547241612748803003608113812528514437080290219417735013838759246675818457742327982472486750339079507451752877033616620837126061346772511006526068008227266978224079061049956045902908338331990041482688990495699605365505788219698150297073400246617035366443060310764780867876157497126633874930748790221464124653271849486764251106587650502110528661075732864233739220379468163632049936734610905965134218389719880391233518329069803858422532479601618156422534380726166237941058590471697970295837930502962106110593907729441279960667535144057643575163871088766751625061178997016902540742580356991459625131712848714789604237522148996433050071959894746406562229676322895985354555441193800326597429740340319973392803633812406161827730502424676330969440873609665601257047433064554376371822290709215015055037262012149341960552621258666284804951676307149785544335252599354859300386738294102604433451749172054396259101873693494361320818365967642952754417615390461932939551961373877934478663255212959195331193421911880433596140972246815840893322371199887824832571367813890561927838332633152682720916605228564599183753507815190106377431103331542539544928450651163603947796234621481798831550902059611301278010843832149119624273387476931447717736485334318366527198504826289770055754470103655378618965004078784181149508576691842237149052950519162938515543555349424205730962744480066965957037546062555794181985292336909992312135917081460156002058018030899766285197551458069467094004380179048569064493068992847154611197615228546446633729037043467400640429357881685974100861921399239568147266351579500484952497847783716766913483793966711147829539277732915708706434872677210214993802111194274176628864240644705885510586328002273706395713850048919015391501845565541486797852684686961146491041728480210458177634971437130425573646362917447135669936368811739128113990989125004792423137489589452527074743957033330501073834192722222193518709767578823862952530670109175897525693061781586063547512691591100654000261306170267149739987754555692789338320972181139695384842491916233162973315977151913563316182122158060410357134845679996788243079997585330946391610384597622406925297235431967373193700552297289710696858676943185267216267946931229191265409649196810139065454329306262716282445543622601949568500100387003178656467757850899695521887089089759488193856759666964908244101506692698502421120517991821741557973143098359686032510864010027793042829858461933431659012933828874405761353970415640016487649201280282853263835650533115726014402303966810034821057905659579006395652174147509710744401238317884065631397042444078470430243488641090261568688622717151148192556167804020795630375901568710491607413429732747724693834106370762629274345576372797573969879832523857853918726229746228529163425250282306644743385434151397419991038049302255478865607664611819438552978612184189893070684706945978670630584426716314258394626832315025473525948420501574873394270585140736993858287474580273697155198070871158077538663514073293239540510900970605096080406982311051091827173361294318962056623168280301342001814515163337547285121064261161081675019211176494121961244450696589159232632823912513607726976832975775959512639687844734385939151442785514714390511835819666574873463643807169070707410775149105752057507561264817588797327116044570319174612418272264755730060243449880143689626249195485149439007939260344166864386219912896369611478373556055767520687969348056268813192295641825076821645436443914962616087384238625913173813559932362915319773334827115245602617309829417585688391257075728784974130125947794418936616911617627610968157320496464090187347625604278140903994816720647750357696515084700294887982219903246579643647300164404219208090136227573293684531167389015942064111731874161336924888675711421090051444330530482765816286115633497952621716459501125377259414861761119335219953015663701563705592064446253390884827782968015328684218410012336636788100639017838939509747732383793696973260928987580232322704910967959175009410279226663507951569294997369020486975992996166905970953028699409541990397844167359758241560005444518613067632391341908119567144438708275432074061233745723626671695260453979266259024528408854093703683087569446032782353375529239545866179416201137608408896712067424159669244918686546755245640620304263817721528990379865264313380833036906615583239554332259830079860258156772321146760362529246252409665697630400896000312000083491890963028885645302904023368887943850557966657224868459249874084887371519614824024394584875406689611812738192880426717679851641192357055737722055249384457125450939259511821327875040232367185919483279667272363746261194739295581063974940035636133261857641989980488740789031827005567372380331371310575421607413214222276921855671208237439498980786834534974531509457573362305950477974629921495366619599967243430068986386022406514232498264539324197686501197306096993438237646119598843223027226644053636166193877924515258935842913743274445230014305458519366679518773200729172032462170224756800153539839024552512912181086177400593968326083066338086820381097797399212207948923956494149456924275592176714209638908987217853199180994132570498510305039603701876266351136921394395262394660826587629494533086074853656321330722616209178989421617563164751650662784809898429766927272064043352763651401064037221347579364419218025572487512661450671121223275732902766737206674054744699670145399433239186628990353813032555415003369186669961563472675329947513785589318181645344783360978147401692466583943066796294934040941862534948016217629668491960629927627301667742649184123264262464586527912524659727268358404070293244850092356366485656225973677026304317637304867862571240467605282294895918983372462346328676272620098163578808898364466907705311799219042142110417289540077324792166758744243105357639326562709263412591154445486241999598125712734859700788158744535113947490250585396935241143556856361494995948980064251754298827783267745902267323601022394149868011042692978670177176738525535743973258517210580755078524576911403921782900090317160190195583049459405049316707681736536575712806051047197905379596857114685403118230900901274854314142972011789430218009516719542685564855971088119415975594546356238850219007182508176705271733572037627564370149566519824168761921061092465128197702681297542849625006887333472003160478100624503753467400671704522537603557797656622736987510983523150465497679897286410070014465861898061840950984817934361002255136671228158295085041885867151588893337981170613614126337395475251423595261033334528359345883896303912257068073876484596292139497948571391297285398019972355434509528636379102517087691912978140961986520209323656076552275939597736840604008302965402800232100624746646464258494840511724855777952158207466125946673998046262717500968000292211161706429166066617321758012733936997857667626220552208089346346503172356276973970488761571768006359126742755072904912219652053709024013084524626730247687463330080409916764763105935131666660340722803716428563135947336517532790613560850523680916112191166403950458605485823546094761229321058103781583445969905069922075601731367114355308979278882137116195374734259690813966481716469601217002408909782739864024915051503882407522659017868417121735380112732666130031244023189194543529546966628681800543847545712475903410909860056549704548508797307153352145810960091969871202010507777511023534356814751246558791965489698809752460181012359763183315370300914913855186851050392277639074642662315910720486158036008124781480793792352542248983919896098618210473528733961531958298857795978715368998785773296568806076761542562442477105257298095448616555870266897033434049421999939710344515402725707836526994157401729194129149951149643479192188058382444667661204356053553473395931738334511216840619397685024315458534066766499018611721173378696980283149853846997058585660061917962040631241886889525116401079433011714576474648640995687407694137285077870142268059324042978747931323735523054451030453918507015858046846263904094712312487655653505766317261573078859267880006430934466733558781558254546928966067640142444707752707643337317403729564613272957944241780858989972144030507630261703020164096158862159112246531700191877646074712148362765297788994421230129089338991007454121377234307596978116821497013369675501503721177905451771620782757254791025220486225983255595574093166622705308558325819658510157371951091947898346938354409634723846773257716885051423510594929031322748032789108716004335783298287762412241699616822258141215723375138846566637750978562609129817168901151503622566930986024547193501860136313278405469628596645874953254839390132392922867755743170858247177141150927617292128546281510553779578886691169559801388332325842203607455708637529724726972586594879566795962301253352831793057528261405333783934426652602083419414334111175231288350059202245152868116537101053052388311011846309216012251338798894044664741169216213812054270167335326203381050537307529993887954404638395669369946370908678026275047265030499818247418633728053348744920704375876080261733325414488099699532755815709258365957874028880561323810752129892973531988461889020526662085103142489918394704517424404200772965307214685628069918690059914896443270686104815626955044017935669870566338761161443270566021990610611994770756446473386672992233093908856744255119285060237267933819916093310559466178453146662539733459886812550798988896921170179403247481334923790621048458183184323631626927832614119567182568842179728781882891679097390382253617886903435051039253013870910311465437459741564575156379223867423030439676927825093059383448455633112017774908915951556343352513588589157769284112758740903612381132556483758310269472612642546584364912640273570208354742128071112844537392988165751727115444132917349625524822805521188222027580012523060324671141365304312850023338180340332622006645527915259029288342207636663931484210409390554994081350385637983319415206155647115207014201922048260517600390456330715778240499547290214817173842359463510711646465740716809478115108505997809963381561479618000236058249489353761841148361120409269172752136787021177767455038919441052622693515375406671776881882075868061933311234416629436219454501778687351501819211778947534140793200033525215305697573931353144975379968618658051122167315709023442310189035352455958591801767858801124992994801255645816330908899422905526350260449948236542029500197595293542494930748562379947495694439380194116244484886506985601222885168948433966133117629771455905420268888754409189472821273819065053774355267962744235441455422420708070304983890124363108362811970591034242461980334274839342385038908647762919411421414726100240182606816420476459957356794578163100881067237061040570378257962573025166233370673754103029819148299962827211307711603782750651707486571776930282722279973304525892816054859949356711079395120912968311930756006137948149571863835590265162171713809289415623662692200762641420287652400702089420444042499643716750297642829197152203031541670158545192696112009522624987843682177523386678588831752602633174766239776957897307911139417156910889093572831295195544377865090690166980691390078967623285214804940204347328670251446551395136906199089538389165349004840964884437525259861707227555946446067125990699000855968794471332793197612949699527249573762685573501403206017554782614517087911428845015337300812948262429234745787610053020408747134366357459649359881682122903967452428541340820153202488345577971092845256197919078694039131778813606621134431838740340855395860200000209688489586265227226738389641550882346122949563911841116751036589850053404746409205039095965737442723396635222980789301283681966171667102765228018247445703350685147309041773922996173543378427309975825683132527128776958092280360627511536390839365133715731933192133761332371596317756330967185001141108087912120055800703745624143151123717978124460339834320057560796948015707846055343974060634024510836163843415312585999405353260238531842712320456985464249115253682387439116483900469847438687134737437723135210783814030689934217598393206822014412812951448428277817087137200530470013698466803211009731754127464084856115326995281575933682697785206906250801812788056041372900899148327445018693273606641635460793383973168749248967366688348865552809233289364566923199674996166504777881404995403527824606560624911420909376775309129479234357756009724662601396967800135473465711671075440443463931885939060991545765217892718377802215208953701637867548566968541648108878148375351013028160562195708879086561635956196965120248902479692915181390515802018296500875717851310782339295686994065192069524797012321712726561841783952816391209632130231443178009065670309864559843815533216354557940464130817393369939975448048128058555759733506775214336284995998267631070400540526392810851147385224526313344834137872850664217914074088982296919159302397335358933233420455751877354168053976715969136165061028383728109785186619287599644289326260667587966223768274436489037530220942215618842921605347932390610322174272061193498248490675656107554426405701836995232381453536861928677805813543132231581742450258781961065011323079907042263948281151879200676237695203320147761585299663180480121655630901384406871069735802602583576125515265238366266318958349247743776918921128553458602594575971587834732399178937726920893718903659316181765703364097215335786515869749902044037452418804237558702694890929351637118048901533917349948440641659159401643482210688681462510162120711539694191207201313199890411964656299871822918346426945026161335508170823953127418407586073149729338468530197089540213847861219184073741913126221056628525210317136096824182219398879503335876267688038681984508729436393613316622437080570881304435581662946050708080070367875856290068650830510127990485158166003278309761916139160686064765873166084341217206259272522205793599280312574767019272711642958236189713204132236592687267724651284506775408925825152562809531744385249954684574140286018565513179578697704674433299079482677810032158489153435855162381859626093823967062482497845634198043744131358200404721220407365083122764538712754594381292882542589248487459619402119840475480413932917665995447532448905038223530911278283179236567332201448894204074713070828793896689526448609496988250414919471277130556861233074957281722289812852611355366789465207748554722653222088459357764173798050162078897722057086875969962504186064232150958653646513124549458515852620293108327464418701318146423622567046879156756377007677626786576837380633798069202506225813940238631118664722757178734664581079467669626227702890981167150130124601511107720713023525148324202272999472631678690368162153808500858923316326836824743642942193578942468577218101005874578989810302457288918546583829861861608663011857357152805141623063923323805866457221312580014468067360384412761386585882739209921681182288006117614476603548193720159168347512296378195282108240871456814990416107871197051774977750152465317234272420389535288087101100071378887330925559397742680536248691592649675849604982696150685830971443002498152755888781102227071130776953190946806635045882594903068361888503353267581756759467024591328467826253179277202949518691234932390256421619147413752910935773821486955270613909833874919086802586025088618713932464968259909206911644064190527221884068472955885887981199310411761614583022186459815318048838171729122781854686260132680497829394915659108182871316381643360631389133695585335187683683009141189807452767979427818853350277822304165991238716200874058991187380541943798422962815052810994874308924022373301700078163653380324539135353646953300671215415035651030248428162910069220754736601396054123675942776853588679034464083437916012360767907502638343892394466264983409368256502160965566958495819029375727197529937989275066106727987380336714775674209034378877039669807105602130876075997695762441959747829160176975387622131254421394904942251746187213325093995300501905770962023366679930692408124580580491532736294040160834610671619021913464504861271057475203465791180197621908025403636205581820491415348923798364812866184543510099359158170480314687417204647845809162736257544528276008612554739608302326327253948825733549716552403234098159347953011746811410293093831788350318367267770049334199263127546660696083513200619271121428891513209531990234664679271640125855829213220030350098824188540589387859381920614902903276674007467251414181067962916642230324775315573552158724038802437864173616827458819307086343299917059244472589237881101958741039205986322047750541754565575477431441715626205443908480039210572799323821909720062534330313828150056187763083170635389954788854232397118214669645122870560076633723253631995498931635545674390879373517045897912103496129721579676348993841820465612439109363786112765430280932830188634343930631215664672681381046044885052950965864992524741942595400356234634224344449399618620397603838202552861824903392842912314718522459159731877118214972738747251197494331523312374341985539504514065917681798998801433124934411371235037993413064761763140630545220027696396125336921712995255268093979375242832275197815159595644199353346297341980854724382407016467419204576748063600305574195330401418482834082466271588174647344133950656017793740971585324113768872436344898411092979550420974381170954297331085680320367415181486708162413300436973284117815451576154749929895920880537260582446513293676968788330765784747697702500457859472230505063666398837842610231291814928507588938030902981832395974435616883994399708786211425247358722691206665369425133271908583116394066927841992556431267273380471474739472192331664191206936604260320727713585329736236500823049517330492719431819817374949765956156037510138393001472381982377010560437584025263538494557606740669966868345904347900284270024031749535697316989694663827714414939950901215738777972527149939085330649269381713091220482974317406544674553487336960942792604454597587729332831615902699267178862771658432704704667187457338325855773316822004963444478782009164185854478574732890836515164620373944650761415890747255594659041338650644570795920794434177046149275362375447412272239493490612868302719177267615481450991005937608418037778782971873399923573648842371495410457721796129173348833966799067376510115576708865072733296935796776003839516109722385303467315719650043548819411479619292012597084565162336707134287729358613890926537425631218392412528703611544185838385874824392704311660619452271163149992779936340535823666422417702553186488008013322729694665209209095254238494208814957582819505849756409570436508132344404681006458002595984832908478312148133924908307518701193646057536112911908879881158300249993484738110858675564308924652224114952525828864527962217983655726894613661613850713811759965440101333070070725955024274889071428390160670892059210510571289536446885259808315885032126295929256361133945897183683633580250335134443654866981583654640335648078627565820465205108182536131000962017065284407308827751216500912160323847592556692774530184009187669132044639103234373605459507003559431617654963485190561291143620956402432370651502237003037993788922735148951622038197349442180572670618384311260113074006810578944186171306108642886347663370718526747058345283059829119319389262966237994201437402850340033494015473938426039865171464415805821376377377080788421117906844209849057311831494624353553986793371910566957450612556060929481113487129791161561243674320096174752687172425612289240800717115684446493743537289814844369571649084659680384208602900195191496097410836777841556042477232981501486692385110901474200066854414850063735400703241230511360388889721267244063627885746166410642490498416428588629563248321291581556682670227574342820488623442523099635287360950596230859449674665947304500230231397705151785105856474516102786644723308588809731012554041907824229464977225580022101137495258329505690680289426701961598192794072029039478658518638506181653839354964986269609563025968670161179036527892486154512567026789977725251768812838778099606170465550531578168465822085291586041546334594622383320941740449218132045119322247826852875799639272935915889775388472652681302179893224396410337314544487338617920180056271140428270584439145171494963117758566256164601260159179336345864214360714117679544503850596504913841935523677949195274340228493591728591531647980214120551074813309018513758708588157707499096392158294563645054139615229113606600462943024396122801335941021992980385102031861825981138131998409877214805782578998418019018810938527797177437294093042460436294845526920964041328941532309561466411927625419482179927722612395425981995180871813554062128541358081442232884775878498372738387350313820261453525864842254049200265610933881806402796195030873217845172382909852560329864836346686447867194302705517284854029321125458416718109470922481850827956195917542812108791018263090464193088223805147316854571568874507462810055238118535590871860174263837559761504292176181185214402921493319532869737870581012649346892410966569547642679734593110593220618650189461395706057424826368241279587324836901242189497915663238541843633285518977344345818682567637909928251145591940699027674750625172651605200371213572952774877715567150681892978378876601417852422161866325468715982019221971867754600981184632490950840340533693889189908172063124533787837277873430446832230796684691003727240178698308915065696959663401845371588451528682886537511998465364561965893842109090037251236288322608003397110894009509595953621356900468438145322111359195373639910323215882775712089533967177229814319475783933949630920025737163016078401646295670103639807061779798912917557289240366173794955258387173723243305276648349664564598371029573787606946791236188779639284276753633493515387067185383685678788202662332709935705843046344802161621265098069686347326317478742816901488273582328401504889068003576482483777587508217502587928673471250642067361965797675753826032003478399492434963455362529328779629053289596572289297740018885594422369678566836488372167858569616106761115165560299695590081661489688909904466553423815130346465474076431012384326945004003643542580637508980870496359890151072098707084985921464891234286294953307172188536242604138135464047029981082079700045158383406329985644883292855177418000366795743842067043410127436207575617230180402119443188444487193144791920969122612812817122632582251676412410663769894812654698482863897941780043640305030655638226690332341346272410825655725441412963919911944133640840737283046879209617953266967414084431867226901955272839577893618615609628585676839334127712573266227361334790504955234174386651574834292999651775098524221031108773388703237105482877321970615104152241923938174136001400395571914234143189525543947081158750194332535244776959068144459577135281303519561864584132963458054549348406299156898717645071578754926839387601838414445420542907185428766267665423863749924648420031718443465400766452894437829963192331577780405075529867523225494548862455109884940715554089601489122561857084562176072000477287167861407277866198623468464083517653915499871093633934435336697520419042750785361663113399748645339025086170244709789553615072331882862851909827927751581668723370973621541056266297501092021182677653182944060913855704273180439155278965866439276424620676178671799295476699418076586810262112065821196154737324127118768598892640371641407539940992890383273481052273331257983789421938080363499922651825649264083568032175791085243833851041720271399296657669948441243132697328322982249108434735510022074078188759555968155219020170875609494846551826266823838771474786411134664402141138399801622292056788297727639896169595750238854323516844658885034445973386656981346869236942293039588431322283676586266130357173882776298120629088835580383919992394406731457213633424831058336229609616024781783379792745412595115880665710823161711022374018752559614500259793478360065525057467495109956488692203537057288019014215322389379866020207888394655210301290037468767366591026731076734286216634229227659346432536194901896328261281628504799995574276362736846310490413909024888924060649102164370661295395317559725782945098605614316762525811345363190853455863751527805869436813624187388543667589932274724365232003921609351574161657669353169793101342108224569105211275536119638670077225469860581904513149935472607364599436874150170630647492170548209132956921857542278294767986845933451595865448728986097992202398331562988990686110410363141258414844777629487621939097902245035457591821760147110981130638716406189499302369949414907499997254581921377737549155677209005774183592917637039150462882872521078500274535195337180098557817396814605352135737777194309106631886850557344862011540259725809431439835513736221746670137660504790630313358521547515539776328587428384260028198057923168603155424523209297208493012436720018436791299476446089651282339253595298282169607364760588034992299652807025433248229596548511698112766125311868110533447982027831997065902921981413853072514843607250881609970590944524780523542648200215492391758770379229718152701183524439510982693588085706795065299334374949022840282002844567103497263760703676398548669915628692217089194021616940522756604319730551251144215709545981425966264577893579523477833258951037994952913594659212905804204809351260136596573659508059092293475121016997692177477427605574106104757414100570879700334430493651369276759454582783298092828189306302017681944017621706861678388547213171907003879477146766965251439927544029847005422430727707234823690297844935221557467489324010112301064712024829908522087449796587531964424029883997985727321343423833372855261712324527454244859323983124860072833421140228038929312879683727136723470784034695791042650317693179165787947721743437739954276544660711641092212250605025305728699849582874939656508602922855855505707338064745395248154815038893955647770812931855997844365991728472585339504114441708128313088816999058973958009631333708300596290558051672842688592174943197998271553413259900386207185809773545400748465096937692378357148745016118023858217376815895522431818099262688198644027823412251775755101535411410019421262268389695735858239899414173227039644170035857743751560873250490928828891234317537898367235878964895672202111535627770678835161553143204601349147865216710426956927677051119535020910800805382262599877196197138843303763864630796893570212992033504140491824831043881522187411838049968243676856698033279085721015823718077738275576917788266480553311725300981701759694074423365662824966882942081436880975194016762532257816052576575266440958829182747915119617525977300888274871469951711514922323200457403572297659096104117510263222071164552228809787310950524890840658433035993972929251306904518265864078324040938426533430050804214258757073517656236877049489525814869630981855861569081577148655900842976149093663971372542663097340822895601719352029235947726071920963348417278854775253885376925201706990226313334371349058680480395450897059517218477634667686806356288959388574405884779535969058102147728624447002190536968740333610275154249736821330805326073686647904888473800623431045324998605147802556755641687934521873658144618185092810201339773037138169062573557082579936380907710758372556649731357587680533044198924318880867084513306408456177550510263052595875506260236347240813753292494817386690980227892743630615593629004416432791691923986179552839038020756095826116606650645761266982709745733047890060213929248867455283807027295765720147335378987532666953507296696505205347191550426402790467353390794950379730185690080746606013415594087741834566400219020543445820466211763359145743072074027784633699777627003518255688150015289775296612646646392637729806407058317254523605278663378838880204299089223556425473225376679018973898227772061706702851194454212380814525236593361254464873460113390510516819559139637691480872520684934056125562893655266383236304826993984789674049238979867062101516961129916848807931365901594477282760548086813071652975792203525232533359861820329910076088749046986094157321420566909546383431325477580084079622564278727929615829584908226275729142258542030134757081755204940733855243073962225438348655425842331409321235907537900076419581981248489268559847271820254559816507344320570037745485192789644539599608945379059325399235171546172943797210678038290299422092074618484206148116964235884548894785716544861712025747641624754759770989057777105431612392935197257915284964106896780045337851277542026607799005908972877671220633349370669733510875001337622751624933442504925717469826972984322003639781551367487249925349087876436987214144977064177064408711408272534681666319125602360712149458760371938086103521426096624731577312072324286832554556516107635614933101031686847448749684967622789592999748689209331367005149862989621362861616023721610075144337614679911616329147202506067690860720829858073622233577101542609756396272490572425570199578452835424385519868180170240748187211288854363043833851396482009418817634072725555295598083173246135799273257683542980175839741288614867459515315923678973924786142982642958731013764269808591454966874067267659081653839421698132932163323556064793583241938648983599098419362617070729789505217338459266563576009809803510956640274795598767670457419358499380480217325750600086878205430650076489294184774138096762609992778880299964177586085643715133713501162627035040217639062381758866381859302357700684805977763123734321721896122252349984297453438537891722191437873549740839765867732321910644954796579114495304978418309925398562730618112945415493927131164424074672483091934510723267731317762050358954574838464584438204544004184565648261494946107675104156606973270895447012978047506282712074498871204325252790495522000625601764079485821475137568964007184295315985253850605695985960198194874151247080650123506135870155960243261015939102674139359495641408344095813728511495569315739232095662197868781706435769155706247379012031788321571932653237879687709898488801102082208630549204850108075967593910872443345200529634922134844753651214493272693631458997284753708777982733824947291365161289875532379526678265784795449547009314522968931024257353071152826831634209851675923174947834208030738410033232780303786259842522060761890289773040672016892367737425754234798820733429703463079416325895390413680508275383223392417241389433527035884468234107234719417558698086377747697693535131437270662991875313103799338595521521639747374424637471988118655533961769946667683826616417988607154189763163185426957268138944850254206471169176462292885627723612944679141764774567636905305823142525200239296505612500250435900019372218350095554021811504135927887326540791079782270514224781684395866737328955402489103947328175552609558969319031456200993893465040472682571071359305414807987441302395917066787633935814391028084309996041959747876615988575955236689616583662648833550675677350539550573440216138018990531253512637190134060791023710978231996861081433871704961720455361272830521068696650755151094656048496707417540481376046635173862481599644183979162600807062976424548736720328141982598795923259927654942737318551463861245500467913977117392202346581603409521414353832692815002054687397440540135057112769268159414396702635095872784169827261682710782592787203588249481256907946553440701447037700657629574552790504126868357860984101624697083971636697816801705907420022309233899032342950778898431765491865861472672452907571387128886350831661407897731797092581975585167301340281210059332506319523531973790154505503869644434650047687896087208091800913866098952851253162195369513942031371004806884488871157275822620558209552055211365493598669875210369831097824293007767831395252983749330371751106266203874672532964076941771580843785395344262724793023426459852891061566096577679003409696635950460518744659225309719212504795971897415753262850766605012919222841136348037533080025246812060192361331326287665174185550319250597973663505786615269060819287300903647465098438500018217874906650342630486328079216289414880759638160981634008124906519730746194768066619153326769634488589135753575925407050848758844525112910662707480743850844393483065945620509053633833507100309277218172808575764512743075465734290392217771045388126257904111783377570015557246118673327747829437793009334260388534217301951258033816676813248605972528781914015261707771910737304220790192202184770222020840100458364379032537916190900771903819294581826503143385904802791718464532737373587189572986217335417913637159444670135160925354361452822328389148522505494359410308405402577442719611082636960124837475811165681278522005129597955029771742173162890210717454083112347056104119431076370757967989613280720083286879784690592629676751109867372942900582815695523008145133855404051997595869581658254100994263731438335388862214879694446316655604055457718113760361457429571229628275410507117678720127193926750222691439417354908947128835992693082617186726527430643274635747256486534021813682525143006334399837214136521759209346697618311540136352587848243680440610506932711597120109532815605132781842654369883873224035073737416506533297534839273912370749687707133534178192298178374375540987510863956911658619352882519959077084739550126243359670639553167871360902931618146500518978960714248870347866495946896344179331865611929805698140699864075121885960283123543612983407356333434635058301242671278709608182950715843854816630707777664203555378197558722050170692242712870700485183119796668687582003114105430649613069558566144030348830649793442324629037793292582444576723099540508100290722040321848514294643311804816298441664861784159233264909201581483847503936376504850293404020326249541837820153183612696876250344304231107979785374855360140496752876800950947353314570505599145221144784578683518870972163969787285490821433356763395219883449413918198666508701078072268372246272466434630893998008485730227814702197440283440399441438426868844037815123355521568631320222202607565008647447802561211708230294886548533113419867313073900157705205870244721762979203454764866082797284762523810582630687782511501703254886730552777351884224067118012770588509556077262803911793429308816987566935578518750031466583051541849301661499729181390704788354594998774730273845276320917460236454285025447050475257823712768608487529974577703524316441013506102979948971354910560589608343203351891586902763977041621507241780334294049605079188813173305735988997951585878062970984564423137522629134349636085952055314910249315126826655511474758277150995424152768827016707127985184881230479763990607037553096307922923271288634583818784022022167017894568656235157213750787046709606884799362373422222823043223010143509931786321251455897867159123278069873401991879097682136866408734768023541670424065479141072175973527205984203718961745110526838175482907265407092185533151371734450079065644303654961458357945553725688181820657968058427361646398292696048598853253742058885655041249578526998050398782928747837265160086384877719431934807165912506257437551588026318259752987882809208558305017640746102552031503336697447451523113390477328793035507745330865243030231806660208171829853235731273218343267980684221344883568549193427558778361919358085712675466191008254237591573606827293841840255151250760489285716787551670381905650003875175514217288355713504884820594476892608875480771947177591275590706848723196283969956982439335098894682011843866629096166008421287325406940861373726486228472266245568161494839429153692432264927877544425379949897211143901070878924926167418922885119946418880757977537304574316679425647915369237878471771501585528420591624014952327123315315734584986593738296375340473070662694083883086784470270951053436320787935739617479431339909237749006647549441872900152609264035218514466573837353832517983896692699893148334827601374382826788682504704886548218530828782057076842879442007609996640187718556746223746298314676355666534729044136063302524213775348118319030798771313916000323844489650567393198953015998166952726486298140976249511329534278992171256980850983302815072342739736345010043066810774923085935602247710768735977135157447424870655313031497530542380779946990245822491228574202378068547563828040066659158206990040302908411949015435612496131225363360430528084598335308874465746115395819294759865435806311479628676650202635260771114035321768182319604525663357748223668932748011811678628635368204211182446278599231932691536761101849870333123394181715110226412123028593410968517734955514242106817285887543787861667213038231341335488283507327920131187495904729221870134923369620489636713294819298270865057540545221792612624484008093726633546962192842949336409471208844611225614128500702712578480397045261373467412672568913180675201475158077179479068185980414181225720828993773401204901566987264948911809953550006813870006790453391425746614585117483198336523125973611171747004794868454705646947631489082873877142997899095286182638174212008115847267595752423455487178176210695493805418163257927363512431837090418698492508386663952203467401088677745400661970976219876849268825251179171361651175570077620836054307205310472614552160376233826193107665963744453581097158508465259270450536241029948613536992403622187257311710832343646917143023858399061064075956764434700509330667111206063474807626876562991838299405290196281774661871679312888810292906313265325977344995812635975410854620986019378739263054417238292558354966325339857929102690369372308797682061136418931563716589086830977869140066220924183267958713085129976551328208156785385246086005086731135360664375768268553712367933126322627252986959694322604116911696116313270775832326559996067864525443837910897790903797758219731320098809434468781276749773951373521077751745529205607446101532356818839747722863461885000826946388460384891085145479554163375681306761803680694256454193483567209884047494016459994048700185822136014324095009483500896128627731672824953408444365771942225273452888799966911880101911725146795442530862634042886648826007859737639699401185577629552919771017466700356814414475480298489655911839320641534114302825771022367598674511117242613231729373925868594151529178731913110348071255985485008419429924790681274608269984624347439869048947371872697691894894523538817138829129051906732112470907459995732826590806701176034351972240511965208803311143869421533070354544288712621267713614966257930016709193911034521230824255612804055116184486875321896623643562958344887600035373178371996043163506668302790442348827435119124511617321213504260565909722922704173201652894969825894114756187111959294673503691361142594657764094946943902525306883187097038145671739775196220508458750999048863045317950424274576193788686088176305724146888878483334038693529554601565686144989452583148662491063342783651691888998305153940606668143445781322021116956399736494013222743766299798175234627937363517597984997296937886414148757257273018006599398787153056194705799745108563931941741507700623527906472865717399455613637468036745804661146813867015585502150356032316907112533120100189516199431966518666277256551415152145033667172221940278441243872971300714589604637815588911306032560565693834535749334123110686275041810456566654636364829355638744077134796689590253181600503578322736792942469034553380883663987699115834033071027562247894826124127342439119174676101673488203460694913135626098887340566359349796843652726772132848794496876459593854801536491911863869218742294527576194414144772427662881750368954427741695312756385689527371837529434633325972221553970741013430852428470647518590597092665692746441146174199831937303206117063699082945368477764118741385918175201258863851655949323123307851476011946608431965623141177850253745823284906110454615086197973873289584547492248064588469280725426659380638168649630894806725291863984576583353332035966841325128025190477039851936343225099947613144007194955023341282569222216054374131975728291289605950516185918810928985644623899039171576911763420897024835900883470241772979574737084130923656735554812314623372903942070231478948610657567909061454826630241604673212296894722097542198584402999410450415121295275859165931648987910703269153258392254994249263981556081351610220051708034406812918715271417751271188654947815145699326155814041137664877372352090546225941188484992637134727873941520214479507223058917274438627025542978155567993610114748720170791915653518970961239135901048274994149067661770684623851201543869893388311656864604672748038898525429447317105586868815201531692383228582356868303810427485864654163576487146808964711831185087396568124541359315835512092039350948627745615742912054652570564401253260960113324535734536202160888336210028939956370366080543005657682372148021957251872784079756216448410916314370942077207302370979037292216436385607188785137067197799577467673276458879518632515195577046263144879395487234871566617011614166852019939667260774535245074251838202092614213837031564443168382440284701947373576935521013138983939434709579580217912946702789833127459563257181626409444787141124311337934145425240042375526874683616827588942967001266827280198899499034513885099891804450221061129718911802175954666643780922354749140178049453529566056055196622591314362807591741165027794319422759565439922630903218732821172815100163705125194871964985754036687407765350518707491420528789632115261972449153862084178433665721997633012929137088012544000172135126455189792036839422795252303088619040619551962766287325470947880539988953784670606841536674513505669170359077222698858810079983352841484648659435462635272965373612530344820077833881419984650361882018396971720756757229419595549670446807749052085571719807139388982555830886537389724833033829666811188987869700848098064930488659741629233807971223045391648312482885384043861050565282172400375386664151625765199097588982192803864061570786722448526569565442137885128439791679330454406224234418909798523067944379054521374923227972207157302399928430212247410945742383850798144105447873370765336178589416756932230692475455968077069819560594025555285040160373999625577078203224340413544398346157789148014293329366072413508154385936551267164839195929209417154226199462430496482794713156556776704318491312991238658760739158461005153175624280910407871689030991665807293679742134928782121169983007718827094452403181252458776587559265351676484475151775304465146151334179875945846702555611764444568643673244759896484843084325399119862083851531944640334538990290396086698923031974662676401948280439274010101779363106684436031402422341987390790838147176001051890800209249529179072376964542533267309834233934140848969227247259746164053985445167727682877704915343171489500552329326975994355532437535357157239613852430958069977365543463812613314820657335082764289024436469589461316434428759650944472928323369305788410282754525100888406579591433075869818978373062026470555438541807803865353710780836180635094999036154166558631406721171905874527522007392511139762349788728978763750384709195213255620541307026702059196372982665709679798314698614711865869475942410290748874907456635218836604612288980436761071424937921758165205513502356598745176594219539342988124206056756935090890797834255343296070411738138958570594892945183118939385754324975598312319561991270274927121012663576352317255476380289415029682634896690386830168260011617241080691882613268217581697051815968697340729104335488266089703219604170770743936540747679113585841716370848073232643222921377945193046143946190042265652987523483610238350732267700098475407002361647528035408359419577352869162757096005161988029518484534240511629800998231124284018258297099154210691623643198894108371833139045864034939899987987161221129203281218701545580492282485286953596553067823361925579809290795753821318304848735527743968171240865695793303825749285514132793777155718608594207504572164540754829194942723553228781837642141875092283170935811830786624157273101918819022691264921020673858669027098498207509118179313336585507199991849419655722073130359431411295034988525749973323142301426121537283458491720374762759444731141045641101827063814776801984261859117262205803792043077230187320065940594980038096195810792451245820220518329601537771588490014523947524752864888324203006463525317133436043406637128326410925975436345667349088260465092100025318933018217345675051382742180055396930615296562586219536225461091209744591088091535121420383675981190786400787814344842299174041671178169019160954754768167513287364968250988299952790228538653745753694349910088406413696672288190983200327710133100180083912050701238730631062427370803414512260025080453615490502970784419579836805532030813219868759228013798477628643334388968102276292684348644802820366588019545740954103416208214200061733889728828776242378661088243270819677345930339385425129559052399331675206559045777681285768843041674975890916721283038611523730797526986150969667514206232219392966139666903830903173074824076504933484813076359413811104367088449567206692636266115802475428845683518224310421151808950453919081428366707766819410769738934457967476399655337095181005656628036875511579439637407689746024209982551147581865578715902733278150334629744538789271719588303139144736213899494156240764055251356438956869606812664907011588166857170256284628887951975061586095414574500688965803617865477189820953821932045212222450769951267000993680612968253461389041486340240726359383838107549488808286034011517467977886462769186884355249105659579014917806337922683297968147085438598717048546508757703997546091860138157992582476955024558742460765963381315189795979059149170678969403750343312346776623352452381078349201832850857400233636106744456171899886730692284060361569054528886428079677391985272964263460637392338677473187565504754598135739061274687219112811095548507799499668383550800137090825505401810770919390329784625628614667755064511389088614664884401183647673055240149156285519569330517086229589040542731270665956489356628017886530035744550004671828000603153582182248022984240955968707871889979386383146293481884330765387859610362065886985042778858478130625668377244980950184739376489458754814286111648915432146279186760095256467705048531548035478979825501752352098430540469520443344381392051575301658690849190719351994673445603170029341460423082787558132077318523956232835967714909417840968482196770548432009821714129673663815944868101382707313735019445139194300114711047843444957837914459538190956777512603669635633048256425639341739431140702421314318799600203541956551674957101113086117184049265584040171392265452772453471297848565197004790579083070414389739121286524310902624232090567595628365309507244502525657457335277015872492200615458689133221607847382045561164500145379366082205132298652098343661208383972523614935046183343095717571773051541398879910825299778253305389685234230837795539182332521031861362353691392825222679251215126400138464480553376259168759465191445369322910868304255052972469682398369575024980153018170279628814565834931107089000378422426695358119656103354587882466634358170131297525891764904629207951551968515679334503355768967605292208353949030364314177635429609324852959627118461007071880512380861185558543337846083388029455520045860301739487401614151093060186011876442675406590781498644088954816879946991332533370775436716001357325912881354660044223690730409941533381184991223750562060516722153473892401068154733111920246429045333043111677467477678985531723914060802244611268531177392359432692595838663773810432051674926594800883572298810950477443786713340945659611396811469804226383700898641288764054463438893654058738808387978691747722383769030763184949148395022905066277733285353864197890964128438552944961991250388562599320869896312369582161195014622526075770874940485163540890987364540615289976440099477396759474101049097512113526635847014782935651027108519739021110592979661502077849613038015139754110624407575622435087589732332397816311459722506768215665993573034495148718146867418160296812011146776234481517043465246040030162669690243550176409142926405914280070576767680641884918140344330020338749809207599185948409984960214992893398990263549419325247419167273689688949533760217363264958195204533626752538252887423120066039347388566424341635164367037045264927697410939639880050012402050125698353511798581354676102263973259632708730415518685419705034387088742993254722428563236072544720067187517702352802976498564387956332265840662785090947541827064978956743881540617078132701953247589621159186655667874794123926665112055227096745363528561929341984548578036537285921423054217501401055882078092352366337215314965098134847651076765687402574689058733691524441801655697063261576406129511956403475061669562473777578595938257637419067289363968389255632630982797557358955963666999770388678285198795861871490251527029644714382965157459536504952443698782777239154862728029477246355527824669818772491710330950197061275736771697195096874124986333728634018634113594528980744567934493721049772985123535296157284036087355513919868322033366465267065817859441073671842158300639233912641226103067879454106505688750415168828785849744435383456209717499595160898419181401588967650028540924080145717237391053422858583793663140426569851129047007051731084142747488779415825321162642932411134788905243960470776338013061864279359584904572395859002059494945212051134367735797473744652875273842244528759914600548791639892258753163037356427812210099818279656888827562902253878618533422599492593315210796274808068529381793295878458213519462282781720505285594200569900974635294328197548850834430447595478500231738475528259387578972892979560608928222809605603652649837533060557382342140628747278284804119917524663485647205460489827903538630264191028168128261215956358230858140051786315002686489628115851163351993117488342655150054878805233617214011411610352159695103152230169628278658084631089884327317721967115886601773373597303885479298215055539892191902714638781956433222317822601538950493798498496619208007617630620344402293706477822945647307247604375155590050048455851264518182327160668528431095393071418102424803222867562857604528869986262839734629475392476618613959848740869205940194928759940508832683321178993415634742739172365153882224396596334914971162861572977745758999282530897936416458535479228505282706344522243640448138287442598669039985464302435889496453699129102769248707577402361695517186295598887639923362563867287406027194077906868885896189404942694865523035412534617692518851794329916657869565756203064983104870136167060853808584981686621446555955237102535890668650742367791522170827127990456580882396183742229298073531169630923409938984627207472097902371930736660986870116480245546515920053964506427031080351168283286137293688558148353794161062391764411606133335422963292184263030843299602299568726639120490164799086380320383245277941314357194970096164572093470231652551863697002493093495129790655077589752266575763402738218111500403340589359406029293550252422954000479863327266908513270014825125556653641594124212678361939096654572875237214666714504022391156031991980332659457185800732982089714719465757705809091306573295199641458194618435327238592417095959145398795318281859078547585718712522201872532089420381960769021344069625700353829409210210332482127381995861624408671576132706823849783064654939740749085340412077407630487737207048380480192819317166775764357477451260382710380770586942855677875275085167503395605227954149717640177245376164606521170950696214863129511754839754739095853009167937885756671702319709715123316776104018373006208988809345550155361309131598429525754427298709883547019836365147427815906316375134254881134350234066956835970724772113642058111006316140318478958672788009353018642328859040568298211138092287113862392396406542918196392098074087377537802123969438163958953705657393411825221090901835378222181427157473416725486034477112092434893849525168249119107848597646258450217104346497939580496994186071988496787900853687002240674765596531814430640002937777261458550430729715721008977119203078166071707135883463727029712143141273443860090165937414850019807575561989336472150891231989887139173734214518222898132582181217535688220575178213204678678517279795472108969221521677215254411004102361965732894297269549938932480863301575390539407263552378848498645908866914184248068709722939275378156969313795694327105036796016881375914899152945784427612052007485271939464934447441784641305863783881302693515571117741740992166386143712633122168516449870811783255614188938908323758686767301940050382071338746922628822899388599316699240947541336464597553979684785135020718863273936172226827650439697913701006419674046014191427503301128664973982037514961697323892974660902759436535244966321236079324717982850025222931724265470796592960618248462189437319863906398707897877444141465844693630622138120685390835824438455359839730803746851217506611380677010757329989171003787811999423070575523145068762539647658384012171394501295666797609014476608836622951135658111492896597718376778655345939700146372057701645725111992605697564572487842816272801488729625224176244908740876723132185040406560724433597218647187285630357244792362313433935035907776168433681214414496018709093119754809081184308569771823713042584625846802640272257376886642839383280675269715990662941722890683357445343349233013105684730764664747510119142840698804340435166592767329319343506186157853455836885624558611391758719528805934646192495322453592803395892713221575133513630899831468379959462689688134614446401223378010708963048825658381173126273869550707757949515452120771966190104363881947257341407231120703699762513585605313683768688317657691029817780612577220036267016552951988701358430646664393017747710154048910695399898143392146870138108808921732681527925838847257405148589614615716055611772689022315438215869266276020325962738558091438552859746962073182581846807247461606046383226101938264499885593249673711929456892548093040434807011977398233758306610513212570447631880412164886000784609576868956703541706630851377835553170567377117925286868510571093615495267193055648772980221965029599375465877715318679987166273605089829991135288298886040747432698403748572240564108748730314096363116026183576027972120349443609146684659095622803185943510015368466595375891635962562782981960352805489971036733058925209418975414484405378014558880088358278495364643042831503901513346842666510955642293604876882732555265065666188333157827140069379071169347995022829872078400468902410428064685510101485211325098126477194194224456265448558804973905472175646520766201786548620990592208082751327393027105271320372639928322267403909061116791487983892255458676519083401066168763793789476017465291921329949897472241750612820186650592207031621636182556517731231052265349934615436659186740411357425058742173730501553213940247530098502555813082068460265582683626085457775856349535297782584647109926294351966333380578559077777144136783299538449385093557212063624737622571913902034987850020880453147951770992452498318386037493932063954660521065775268060283949375158282075765962719348298585219712883509103223824205567534887256139619583626557965596898897867988574843178302191673301466326040344820437315161915424609472154879746276899513161736481735484677994645513928111063849187935110871406003188133130220889344131433466912619470871920282917451841293546740086846481219632953723085018753495226826344066826929569135606331936465346815165801587006218265295271965883354031704907365634793164216400287714193173722982020472950034517917484165339974309996828819075374572075515556865493842437331630801673263907222891435095109375458548770506900910587383200435377456373710402109378078976886670502792651211109688525660378391747844111693843736459043263571897879400641736953757069005203778032170381910333696173523090844184262498526852268834829652576942208791977432306367010242414385575826517429911032517773787290238819953510230546866257741711492642151704260020560419042772210318942578804057326684700398057594980012117190904656598394705058196124621104822192870016446930042737954198384109507591865764970644583292082249545566814313484107622127959650760254451310401567475343735153933947766344836063749843118767839187649499060827832686237627204737127619631609078073225421239872264302745182743114598313589238674969730885237906357595884978571300681882918038442863269563275565408404968427829192095378858546295575031107187938758472785753910943238117609621165438623290562257330390632374396672742985453034989845102297287257787731877293923643452528821783936230762439923143532988158961036599239653273582344010999209755853958110699436040372984826114687185222416612364440975325794172844505421999209813624677498065622057523509807394787840645969492569815625794879985092401218351490661472246195543251559234709291178420988844444364324188302427106549360329903628370192941438608475417315684961192040518300310906887092705219695476995046387700691617160413269480552351065426039137468392827673820803889682814576201852181198192081853904609401641329620076028021873436392204928949230267543287635994127318682753489374300229959519263504066856939781371465468239687063421489070584411485538542722013163330899708589812918996519573790731005887403073203226470179156183805893096884259679426193552959222482785420451364379011514738532172788218603030869464676896879826585473201781141821734330655039778154646921604369141027288147963904698235034406146308390612145642388505804969415407656100924721501003962522004398046939795186746666712413844077591605337231338973885966835072045774213862809456588275131237796799159511661024474582171574603079910883527541901219124247959446287797238987177157072823676185297478571973579334402985301990401470441024950463669196118352207210825974951283038418267554484554566594485962907537256427667205553350815306523490039051747226226668262831708249309265499556046353062495539963743792032819299162877901962362742658747003917739570094290310041800510879429162625618588996148173041829301360001204968017320505312542993340571495314278963099261916351274072277411797989744230430948415779903434143338690028480193923910181400880714783352253515624093589383885609871148453203571618043165623117672750436752482094799074786337941591875651193136662594622870597019012840663444177276909054433104383950525068383217187012484098309987531015035359451030204369778783297771532623072675932066368573638566844993464437461681409881189764713144386229494760177915383917437808393349236047572616783380974922921785883664286320242327601185923154691824418918206929478396895991725073724292734945420075298635219215480865689799065902381341509766469164307318956032654946300253338111023890626293585799838650261455315661725935466289958122137747657657384382707883513524302984154057576275057150006633039780421698279680811167298595374676174986749199554185794951319976017077577800470108908922606848285263565405777087851817720109508352237815629455090712788408214722683898345314972072578340223375529217701328401615166017518320481156536850011490527596399601902799706045762841087412977176488444504053588764153499878245358824878876537977615556172875122013862252616905447848880275963399576072553147659425376604874157799000742560913872977044715663796701864068133450565540036916299594112359397975233343123696731113518254020381127426083343093312834830893705950564397942515189560857685483519434890626005227224380449518282186348458706796156930488150595790391239768222104591549289542259645069647623402023369496540086996261302458817904476211937466395851078672036171134984203646084733726321098368915743153031332310654105335811576523258104191947439442335139732577754215430964758984597336386605041487858971053984465328067313761294754219676094923972809354302176108709936864046183250477182267563787479194270022041232691267346098426465079703729978438311400058601216164858605047265482626788882652231584941051441335742861678180478433899758137742731993221573784790589055347867782333063247981074186057017851921302050476367514902966985189881075013459827167976812355771532727950356529446924320649778638402287214210436286774234800589437410794101721074435058432564048400710506061079600992317611984748121245021407563482571010335344206402303544313158002250599142844587754159087300339133958904888878939003001135994173644367320342335376977870240624691416837307220607912587772801214040436257039731947591004982101874171730221332203839303697831514860243096523325450638235090700321255943772728834720709001480949408120529416144409506985140013847257965954454724988667764232320163679212856976020989063034869257832150877402955956333857234858120775362497123466596035803523786311816691117360403599595915843103990661742150670000418219723568879103765037383392749253289360719345290077109420689172703794461939105040778356504211529753977761461115879216650800167433931813143634337142013601843483146211443886245359084720951334717488925455631554629903652212294629763822524846103502400396417376822141898101496503693615182623037317987233147305416209547343757589754508247896606961893164214146698362472777869395689541464283239877606624284846834564077012623461622496922921826369586105882531268759295661168903754637011108358531317013699685975005760865058784528490499776901341182375587305231664540750487677144577467961868586894408096754439450316909549754450591505376732366632597385838778561110684650887995934095424875485550295982301361331118683246448177063779116063664908185471691483335282669402629959430109156338375084828961904760851232526967776505180613959283886555585414213903247578034228285385159502042338124945647132120553775973994967032237094152694582297532777889915418074081081564652317698884444760575568832769954679338497452862027010307514293963091449301509487227272118282111648929581533306904611494969036707931801229808986570415120934501287477078937316871514801155608956413073479366331506370989503068581896726298930155119379699438656496334686037687018113827267093678516045932595540352511479267503838433888886210749184413391784239229200174376943056221318820321537034458581326872404895113873294871638633156196215757916581307181145893095631632222700656469647100590146110985638012378403331179573668225712310644406481466810581199031519393509265924288386937118480820927979475114931618714711228084145002838323961928915847728943511919609934570221880021640890596121075469722133997085751857174002992645061709624899288607602104700342241550040983089691039965089644906908704250591265584746054739418327218471691597195320855404811918123104622094480225605456628028534659208801503183950990654064127633396691656654068442954129865935837951706414896440163612239000860255365567549760925396753759146622680544164604446601887838636677302043835389525427721488138777455129314657008554286923964659927651448082764867806519013549446533564553401909603416342693699953827543384317067995762627547173939921706859916380228593531781185271340079689629389208385786597401905865353901626685781757256570177646324659595673211415180226065055641778963734071857166450527156055567617131749459938849170279293832982565909349815927841300709556880352338055965919720694458429543761267575492891036771238841375533293365372846309359923749876339528654129473399337364902784308231729380953181487871774825363753912240294748443726855287440222404350069451068204241141256722222598058123968596493242063314431313661764497785043234817999546122957075935925255316873751551695611654232994193245360525649434615161546998434833950656964432880816311186733255058897555583702349846990285623003073868082316247911463603719806692079935979192723892790848827098906814988762247792450003447998491073010120184189766713910216027934964156072828462578457663444682498540461794842094044183760633862040292869197157037826313035373627910655499421866382880707118988960865883116859527190227502816317983046219426146441869318548977684721114434506427699647386570111066619308853805294390351175121321875098026770148965613081588665170333879460545005606146511786970245105230156599571453843544223240624173407829766155384952254009437176185451624622341781645909748696744044235545200540103322848753573533370450681629838874107853622966015470144092788273509204822490731511170104442424114513056136043253848859887514535673882024148456164276010569357255333516435465286777945020739139450089388773211917030329894626707917290199542960025937613754829788334686304918694686292143476733810828016218098240365302552509198850709813877526948141123731112894439949707678764921110788895551580232617714809299545025756408264386021300295100908957660745268023673672147213211115210203382270516934062062477097504398196869033867604396406370655596638691177916516642575287764370890673015649714593842524832225629421815037487156943937085932733438327291953911681418258548004691050136175570353854061399346052494115887314865210886446362227611204175719912331822173978122329077340491102012442605570637684418479964149655963695507176679919497051033140710638296252898060943498630055541196611532777286819884609920748888747624747311628288962047621956912028377695698631059420650215173401442552694258162214045318719007855264299488275408106389408297269063879496937738721963128149516895170079123748850991253406243890685159942964166050134339612360073707231719380297581058128078901289101520334457697464894462358649743894274580506872138620880968546290045800961953654380838496140766016645174599280433611676800893195644876203069708411767917918327156901167017879208583749891978742277908239289577218356559562352229536216514679064507033077683125118036431995502695166996535429657634431796643141931510683461385728372012979527953782100070376380159423462021173325240728507337135974226682528651740933117669909461288415345365254452607734759579301759036992834669674905365675975812017324121620366305925676758811201698565224072706927605046189155820494300157165231060465347191990284807364903596807762150604716367964630517211301636102500762536053608544495055599382409517435608002052425713842938964080732681833167427309774353011252050977612989321630435112052326464674725095697560353988725765469573987166807631567550643963353704393027477464291410525436161129231101360064658162585365791708981496697385781028030244312439513629191968002789196603989671867213065061604531247331249783507600794772312578301275385948172350431045921015382047682687797657825515501966986999278160779228235381941811353633212783445980283955032824159291285685236872746977518202429485314336915391002767278376538430592041673091882812407437005793791494525700383133549200483528733872880911759608095219400353735005985574589789403578351802923028074336512736739199285861482676670245619947019866359951255039260193529141562570295917274331966541391585593029966151439189326950477425295063457075064264565143497759729609224764300510878454758343825457680130162506417298797395613233866610285182044793695526400042651854208680068908488137233646704450835461049685696333716298042771055230715205864965688917476197121913386269511715167207201930999028847271954955987922500275474105918865573313377831480876192528128321826025876116973112108110585682052301118571304958123325179493331162079794033328318951490975989797214957765848126190715222218076829570506148289609127715283728545257907605050261035747020517312154842342200814437987851514952333843423757858721881205715431077867829170076836614756766784255477871753105634761233576842911738609393655496926250700374348916437277062485288884621370608229410616583458161705431518199856724520322960864518226086767989398015624582776144029399701162030184052762074447495170345040236512830387069920531751009946854026135796155889813488011580364823491606918662393965118791064481635219035207274338239343249034623691850975340990447117861070071149472425369523766442939169253029573093022069060153587795783373366768364300171100429566786416200377763242484339644926222109983876040598215936918744887473801141772561406526456917104050499296112503433871549455877035813760685053483789659534496066397404340359853928621812366465617253476486807234017042633653129816123050969549328565084653363214262146412962693651000837827818828183741634267915792760463997504206705755389213061787535981599631521754981623297365134590989407191703502207793025953777224316946193129657807701415574316669470414118688663149066751752657307438312795472520998533598018197179098808449144592308193757499579248562941916664025635611027131621624278754619181948668286264979298965281125896264201310041667832140481332314480203239228606930479853634109197235583650356287103115461043279531096598996446122834779525473638428918333406500046916395190129165530420510714919765794534567415153231474794270173764438069932456318210013037305020493572934048059151837741081163277242302802587621143409521281905104952204049570278446301494466636957439850041239714315638014908862747074167214139018804678203162230799777080140486554698881776569743493236039307322558607631781552422224825930310984310591918370654208714782642328131301027810321206885628871323159741330561311247042836146746030603683976222781319949167321350903414303682300033797611128526244928205316782056912855048817098784575721126079877578347819534508065110283884443865611394917133952653241689745979885218755491809282820406544613758512407022243925427300708910649362389078573192913129500036604618712802427605164614086932178774777535243249205686161529132199755534949730504911274502336855353193680937148407957976830454781386304966006258336476231010230081663277687761667079328554897484790918285745235944999394577178599871167945436220586190513870251143589240382170906516095821626358514756965031944189124287197609524238757576173759529577639233681635399843987579550978011571557709806706323567031514104026304746521386164756982256146166945673558512645815257434029830215815508636197753125048973777298837060407071473177007602382123280774164828574519696784730175542289221964047761256841318266547803520727535754271296448825428358385692075090324696416878814821834680752080220020817060198150853658241883706466059918417883178669249651188285779824871882749193258252134356238113871666253764782072687190228060577393219652841881598404561704450309338837079732262038797471519069091975345366228892010309464638705184401273692897042585568667737943591583467593549719795079115456794912905665885795693857435173231117737634813902656839993632629608474932606303963827248216951379039317346702132605251568164197514395357880664812164447928645356450421760161256766256591923143322764529106463807563116086216273137765369377678780576532605441286587271740053022652624887635622209385869918759969158006826496993086369775523531975364546288523631830672227469254197246713401552783283535647791763213489833984559115557716485086949618134797051554473862433200440711804699635857399738701940773011054350154555394892689709604370086195205853549681806392574566597700331389854620368276451344139483411229912331874320014255939670053273824936901824425103141725781789484951430355064237022772610930242263575327782325787949244035242369498275000917617960709164845752839019826407763663055396525342941482635697968620457241435482496137725160041753660356069506427143902152205984249224023729333545430062780190070241784993728651246930598039537928981102183005656954498119196686738471773008962993990934873572691664121098572775787955170653712141213447445315246600330485605226170509168824167752346999960271396748866268493591287665062247124077029971951955993068122896414601955827392278169102284388270461988300516075698043959269056158242360576680638404875129464981951753741595800237843842606296646391014904139992461196255994131986343078136203974253315086396597100625882520400251027015026306574835723933762462805485798498441839060794850568246350259158062670167644777057709698478806588671590728328599222245765776971303910582654500983230069274189944339251390664226864990447948526568866025800390113988254196844953999812704374096470015881926491589635130647053899322814700112088686988789518465829011854803813193406848197013402020032309218341172314409566370166480180689834626922048175544588837963299415678148020899821261520920452544952086162271228825989121384941880377835482419434093378730499888364632404850745773544943714746043305388324511508498499793454224451097547630215358763848964659042542398445813138907056690822540024178869191539567339224531092460001743389392751981024742525690432560388237909147027001976612050035015737887026923600926232606185544823048741466574047849341540028536122960028468233214778987037102947429763583248921076971258291055649482776352002029647138103352787532420071316535100508564919987574799231821637656078075754385240436878125392574851511347787963840244945081715661925578228281849271874240644200125742617968565859092940651707495189225127243652114743696608475971100717857688824965842078230525005985375991067312796367416096724586253745758538466127675969401890710748591020433218106458172149361584784476407019058787086501241251235906951517719303286389784367778240218258078490635255587910570806573504467619716976173948415014369432435174008884434083215069791673282651380936024076662242921857631443176504781236498649693913229761897468254954440551803738194187732848519746436563254003088851315607818606921327558692986792224588540168357499342268386211037027501900101534575357234178198791223186055935269779333175996996617592533930978343009293190051174492991897733610833107042919799847813711368316615072686311065768301377371760705997580307149029613496645921018631665589961715864996101552231435821699668085629724613823439376118982303415389953226563628894401064471230357254351258580089673707460956173227397397287035793189851612213740246464565715551199670604986089819727936787998995921406517925306517559996367562545297485574689302374209850142937121991108022324304292755198562955604672803640700554876245756347120368581547170672886697909638762812515740958352037221753002505112488057583502327424961474796491938928475477018511519310637782520218130082765189444034763047817612214997928951995277191826592603977965525384054178036667512495542869135290740411826551743424335330298384900927769796813976880247575379501018603518749547571160063029284328253306865104009471610241947014743804412405603231222163719625295935112858854553138694959075860572054191319633222733864363192679395981966946670410847026830267228000275597746303201056096404534640263335371918519965760236691062229497509726945567220101142664982876499332382614204613823712251019762619108985777511002929735472527055681811252981796632957343673878503146111527059574477529779363197021935032037811890618803943899573314147536832078908416273774168599058662519208257355208824542010813314458515996808610500136394990779303497368025912258863127160582516917563841685789708616381751966531976162691921715108443028049636217973863517858210633773501699703665949874764914920910701669013741371324896463875071942514312699569673175015253620967855508097719385977718539154050819271845949882053847056833598424212515364306522750190383370898617514024315219829684535333495851246929658706026681390715388579586342404609893012095578154718784386659075313362114546524350253736852702001580757052290476243165589745631350663463563788220828917280960053623456557355323832360066489181005363128428679374693568124429752500879375905920413971781101914781262435866037107933519036918725546327258010649032492920932817612458478014797522112771948660306920871069475198710959901765796755226042211713465533805671362703948704581225114911708957224657681869852453066552787183051407747213635272917603182760950965023408409173444785221643891967580161342656880709167546138706538526909401477656282370580167026603852970441859720243054434560694274854842125682632008936175791419452268671147259250516970509499817846732034995618242613283070572091987999328821601766879727451077591738132409092807062232590174819231955516667743296077086016622414138398668603756267475560793579898975717485994240793688926630292411290064467557836288372846406949129015942734675021915194039921593194628862739726629915631862056198647408531434174123125396938505843897269079408816211181534121295059644370145709166086159994534908734695634026602340600187579995221278317472627479250766402959660790096749725674219472166413485240996010501642125353561161682726753588531676524188007530734536995473752788160692141924509069987342036623770263692938129160549310085223218702145484319427733424312404832846962993603170051225911338276538067113745282740337256572333305888734703369860507838339783508132855164817425309011625262516625914994141002256727310223619572424062624493626875350017423620170857703022090892031849582102152407665316485254422721338115660061317603269370036235930798518419689590785388281583433388715940473096727404707102031947458902239646221049469166907424986477728009111379863881026839189344349860331664661466507324722466950343392789667379044171719354505690422817444213011144462407288668335080680080634727669481285357000550176935164950893974836878868921713910428659878678197314491820505739261192421627004401424857996280699306608315024086187383982416451223144914704087170404712690320611703411503234658393582017915803212896005004330138589687650633973611419135808753233952369895915962880149921693996714902025125798718671363092076587013033378320762937483910284780372730237536074395658898245670635639434621128607299700787539661160833613104210385472804501824855390584647456286334888627827231513313518501561268193661094410918133868066897389063199272119750600930670159743063656439469653525144013407871911672496213123953767145623463356204366439321106782485766858925130469895199224515321890681615010272599967449003614365855658088475022835777920682113462938596015822824550147999705873192647529817799927251668709629320606394669016223776354550218698446435492034327713758624637456773689298588052175356369138654104630685630024346405782344136867526527311126122692728919216218150201920503041884118924638236834242980140551590503639992282863457995421400925463382442308388415640012928826783582644294840175541286927329928172657131475531907076763225691443546879939691237697693062040632785631009927490662451882647079392317795381480734233378493163660877997427798210129547094206195931607162485094027088967677509558206836296301420590950783306710422924771772858395190286969726945071502023011823548290051812255548576225387989659578377869845244328336257651985335982964924546850677282898486204503865224167673922141715545335350980354261805603624675368386125324402725234170324030993793699323459653354088631024320463545332120286378034186747755970881396862362177413940463983539213064662561625773554893136287820637128751453882813015966134811752586372932639251827728785118866293303077924853589063479922371086147832434762029927363434456501740112976558059117248439224260060105530788002645580239479715922640304893911402582081445142406501161377966463612865686448106652002574969474094763728943546672179770882189011886999470630090514450999197064828180950623273678703902626148316959478822991627073449732105976399893523022781219373154806501648801517614724116012697420502227814894966238696859009473420018988057938163584874520026847676162154006919558322557890707675302275893422912080410815471820019337315050075233056362863274451392173461851532263511224760338953792954454245301364803812126148720790868421566651817275800485935366567445657358645825361853492298992550413228690738470870161534310980776886729437395636000811957039103603937144949414974978636289087883543437715073705434210149737100863757993952661415827469916954551335080531581648653937441949358746623469491760781342295325706194986627430927356952647789790649349049568099940207890204657524813012672860117740727934429243903192261044065154008091416696644633157532798022485572750237558365831684156740292161167215745827671324009895878142178099969270231660584125569249308588875805348774928155625298490321598343882933122573791371137110474919191410286527472520771221870883572358684927734726339243089892573545635877461918836159429097349671246290087784491433578697667810799111018645589486215034849879056439262959322549898372489082064949417018364266205471991587657871472910221774329439863392249062085635556258942936492443588000993552671997111469344148688725943349008762844358975714858452841040540214190491200731086898375713202128182237908075433940426762916747024122190240291030296785037584879526759410335893309928657202440173740896829933272078595924942570873392402382733894878588314462217825881464658486847354957949533743930026714224756023781146760538416882432148861870191432143563385130485856969022298704046129262182077194114620677738934072884128459658737362433167746352950805676171583522062151358621030212902172243950147300231422937051174484539961573083482580925853343634260773034936491467436568407578455101753232761153868832931139709276084621209086822518650249967851701336488482538981093269451836142357139093554907426479887562600337214348414274731192051207389410402124048773973612638067707519507925224462454804777387950198581726956211077061424579993884078699367983037125376177509895484657614539519665019137232029214065219100935550598705953111185540023832202631043278709418859052917247235606778308776955217384489723410262285960831762885926806882151422272075340337042552484717020863721284380242321570801934840092029815999718147859845046668585429316492467217379226503019702134915897709801949195607212129958689368808159288410318018484723784975211987115986637330942584709923723027549462702047484643069604257892755708058230808649871200034402721417854443150633582680330898155112520471278765425331293191329159904211247201616821165762013130942169545628737782091368107948231000712852394745295876735182115984126458257773945645729108178328063208754376584216653421356024126897790832842984853375190139965660362195274946834662939106960280984529683780728862862940336683754096202743442125535127327796660293122499656445295934452594753074285797421496756021742724548430176705865426579862387317541700600196751735995038389020244789207870542676041784960351070425841590461377098079165433416562546271504819248298969218198522326213417174584664302278896956966966893013443075858308672608306104214493962841358021161209795011986593032107271504161140524523306964482327244530757436578621931794105571660830603421567273770297920557299944328040896667475059705716271684065864752991740113079000208436755611771293998542261200768303740084941790161842266235609111138212812941938199181497645752107658114900939107242395006322699198802189234648964016496911616336065116201333300751327182437804037090017229563939668871409189834852454241106230009552127046626321568061736667448143804176463757583100807919011268449237019300409469748842232891501092953309313694709407758845665196768134054146848261784419843548526064142998043344655932904880652782708935767622428408503450743462173693815634072993623585375219602271220310640701369055234638173685242756805947810468931359159036285988782328562983273421375685131942817494167576740288996799341599890437331514882674905417743968749463909394131730903552012740103723587233772817680420908115263337536214167007308700815017916098104183715690213335105766236700660488145670538767998117413945505204374261088262424612152647535870655044662265173183603490376569070170872327133363616440363240260497758771616180839352656219591542509675497529878833133276173608345942124048799415701000115968190830256654435646865126887597530727968961907107340589903477909979522712711175333194768694860166866774881084052839277994275906357476593434240054428898750538700285883867322086929764632752970097361174893292219765368640225867686698352151781468090240474884739948348506785028943832514010611760941788366328407509495824585599854806418490014862975921126133765206230058879714104166926820310920523008981224072245235541681872560455236941824070743280464427585676769482763558769646312313142135876877209455408360384261166317477555974221724053832403816181079356945449033481826520724620715871872430378342489552736798380971472535921037508229830561645474618805831296012662528256511411490566784241504723540416353558178195344521826894215640977515722246566144759886505156112387349484168630196603752448824645955790012897041402011838736558466080298409650992767014682770404214297468025971389466260598262865628547468560369927692032059923738375508448640552197148433560136043034198039149464136151503440829278093733221113778828019622986724777817574748225238180747673859070695836835593289010853837350977039125382821510385776329716787582340042985709216949984495424649291509050978298975598877572437234107493209099772006055078706773516006771538367812506756331680246508765728728781008948780670518322946373143632364847615227579608354829785548459514842565915859292181028384287909161764477569938636053575265213204506125033569838267529534026300437525963292640719176180494321787571661681117511164854890426109945709164411841163349578404313756475015196410497756471331641744530655222439975003315518131827786329982846784648140870889826420059534939219925338832351254342046293202485109853737950211067678349551145564135327952722302663143343111077149302323526587251141599263947794261873268040632370141391655036842612835050964387265109583496657066337301465162150752095339493177320051369365566161185505785415525681903038121681800192392954828284157812291625111239343696191971375480964085937109844558234785580133713257852190772600498814379975168524505129828332401434012333179574155204549545713203243699804311998880309490827642854157549018687050994366435531831402970929491412936562307352559305604250243689535499996100498502226419670612581594843202114683556833205185570431674944498547267094049751878888747633918081587489894728459697561814950836548824104370505126360809984859669450323953896608556977474625645093149130484276750797077376144534892136864576747349596242726898930730910739102013870021794861536944366033744423839021037167167145811284614829545272520635361502676387351847812191359816385528553308698121488953206586443696691697050996095564473675033980621794971847583896062334711247812007086293279795012819588251624683789730295153262979847688745894179619989791542058299904647520631045522005927811839671358508219452405103250570416580993284669642873916279801146703530433329787941531707042007761009352509677881773953183134691170942839348677887932601148840639121307426081102170645933658319748511375709896600976297027607376160511335548023837548827289632842925786564689328727353485331775007233291547655198411326404590576273176159160489635496109619448339610800985079975808076427246301160431059340394713621045817397979456361567330352741024566333735154471793831628859286947015326361920335402491795692659080351020182919142042487084687372430938464604623461051485896849676760989515539197923242565812921528428959524510602118409670976877448151636537275595343907677377554182673685742646062567037662411836940153604351185292066534322712471159545757491685684088833067872138173399812336317396995994054002273402541973336241518577586620867518639716433012402667886443055407357212893722874585075383049081668101017791582430603251881442707168432718434132955012726614564534419510314715570173474143888396808775297494403001704528589541899471549738188362817239409620454391465508834318219742029197720862184034397459208821365463832814130593104489606219046758594526746093176652505519693168454298392111154692079034981087057357844530942555484542034432999709654772414464803504695790216429860424092933759510437708677195796458870434821346965061724868305707447008607349811750851857353434223487381182905374219995475611665646600029057348575752733722611770884734854212378019379675694187849057147171404019040933855931434579145808929068724609605491972704859050466856742995753344807314214594105635993744963748050579704563802782297153926438629261308782638867594683392157417355852867824490615274587345194760828962844210611406640197406434020499395534072834398395577827521980770792182802313415467832914477663623536928153012261862529695128346678123384546905651152832414212674812491547804980106536317583063566630363907021154473198459306348892390893513483000494565466233660304205244870150910615452670831215278089240670915170931409200075110962854908616860370353621372205482408955321111736087917639484345908375204243039401105756592014553065859755231423902187486581331320375951564098854411562088789077531541177847688292720061655997461126445788215920819557933438953908997349963847354097935296578567240016094052543815996453237968955132172474220865870507175258481623941590750457677637287173867638279646205616624296622682453201580029640069329954549907930430550378012352666728003622156579414418038600588607942791121261527268253730241057361595122813195969655125006361189757947456338864328274901917653230880277445122812103745110509885070737511273992994819614080846186968392158087957178562549985709219418609379648748469569459589460043354169933846023807934406324402942726886081583016335921984033206447942393164519398255358995484685592596756410044405896348854912372864586287634306784226771745812875765108529805796810940280282034984172850552017101662538558999605597735412774824050127898484002978727944761059303815249369836344213616170097175113698024675342114311577397006223090501148551494536390864410074271420027888221021640828636493517104387080675271615153314405563729463309457374917443358394396774121205763874164994699296556409972447053373075895160034844391471539519167171416050633244557668585242222451219953606065592279546054454987137991545719164744280125789851789347470732203813155015012919028919679769312749832327890284919389129907665762453736190508140197809806718342854109202900218469066948975040382187593178596558171749093571044334411479240762220047571636601007732136356505484198897944985287218604822025796706956766452932580988541535370227480093569589429751289811500592142535875440774946979882417492446461016346270135803719557831224830310511286238660904761668484712219850887983908073287514399263037003609694384949500233261339633174612418260606171627266505622770765093257045423891933578884608652766425006042096677604208222695515985790012778607759102937394981442149966123623989535737383202121541599502854177985162736760170824559664650209469599661047978217702748369701549168876383110924479263412728313009639888026496039125701849452247259188323942008743627939165452097462549941240843675174218261097927245482005433280834300283847959720397286078903772501163834227630175823953454836735922142937841642015355500444198805657616367130903463085024373368967945607381996770002193216387524273788967734281872761391243846095085198859946453241068131716997095627972156073006604806231283754715683563040113697177796788732816778920905869639221720467357350973969279961108489832968233667666808430097481843531633504798705899924144517607858026302895516070434329670140773537959593098333566703927070889734811735594522747991305126284797667252175913365489075085479112976574820647393252638575064877272588288617755239108698647749289541348109740360380474060078388536940325416088968233129199901386085053042569379834444316728464473521166947325228643465135788724023269537514850992343377071316950663225549637777913320639447100745830416114918227385796869753705215606916198916082607007719360367145988592481898060894574178095221982753292822202988726742803039012671484141160127742476482132290528503319300858716269068252747947205682937933839564796858308681983509344670307706670664229134012720818999222869267745931516135934008397969122234497894524359788687024880239308543026274212140214725996820000365032939102040146483045828480020771401701225174355405734310251580177569649406601345013173699321516457459012734020441216495298611185671370075623338903776149200879374029212602276949475705829440109683031608324555560278932064874389577582571437191792371189824718074811184613314495425970760246316477691504846728913886619971963696470948170336284376605601493617624981600247564163641526438943673057788143024235597961851159512992932794789068973204251579858820459056862333641739262962145291891089231496444445178941342982977613848638419032148228152361003699816275486141768363362454476649238610249082226325079502054052599827160767198294663888733588634686485635083910650312151995636935173826543501213242758342342352571116425838656935810328042825443163293537064710221506793334039777864765894652986165531610625745918272940587498433796494769485280764863393760614345759596173933635028335699857399074132611410310389624213445199820318305166443831288232819341775987780455062675390848502223268595582069792852095657422525924918714439735167811854921362263173322897188122663838364894052733014319259305827710186891056383937377984926218974690523952280167840595132083948067862827012265739394196194152090316649522954795685458359762221672213384861689222048204017700322884165617592013927949179009094290311373642717273105850452262679271080867980961020862869395385339685915567295605760099614425149431065779600309192639488487908993243880034587865764109396778145961058397093645922320797547895007824569510231076420929861953499039788706792060904991574351910558511221822691766290042350641658782325013893727740670616175667114892254976980435363733576964047027735004041660918370276927618515387305869272556617596399236509491898448145006515589064652707084372547626106973718191035664957664714963730127364505173912310879313573976929177445374464755815788061364801215924027273468748730590943125970360632039835382585182405031430123329117075497729289897095351378524400919022689491980255412492640595445895445517690367987520271511700536007712109616164959957355724751775922131546862398408148221529345240950135216643528289573872988202456972111397354287536549338860126522053707273027024346469437531315630584409257356320852239459718245173337627460407926304330972793963969612968232924835885358056517565893868868363311395124761111707192681861080216343480716339852538639193883021219272905119287442224309789829326259698551258490185880886691225962761876961403757311624405863256816234074402240184290210181636150603786989284626121060520701470624056813416619091955077763319293085079959589105644087837587304923084157154087018894207589533664244909476763143938799304297194758706313950517635217582669747534918303192715858545712123989240182044018715016708669825795332627505539157792045808276505826203570981582570711019738855134860616239244924575748423520168799100924724683909578129465283373807970499100007282344569035299397004129578183782790780890465749826528960101658414352478332958609759816494320514814463475905941937583484418157135804603082023843263410815961186037763457148691797819526865657573403066145144383210007708945148639232283009699894522194489088963012561134874979098147452411202235263231971601096683390655707100629275414478665124770308523777412227336965175895500316263220405334549718023805190218472872395290072455051536077189081845037674675928282727151260523224706781105888339543994004016550964544256431659708564574898973437974806252021104660591929813957657794994488507989955977318561196151209091204688944227437984894417183312496963954748072776446268226617533775600429417965608550213581489115513679297054761776471762538513372125108238580100845899221960038649506037201235108778422582004007989943519857690371189282878994513587443421093185888317016011789716810459979624292109290652248625090924319397033741507088980812448996863870338723286924390117334394003713483026611445590790894693531143835891637390097025136370666191098195463464854949163989558780335664065435526893980058647518790745647678158331369933761282125908336920603054319831034539027024421741777175710069414204704535172188957870516980503888596626101888056607696009584331663185862308774406944321304527299300965358434271070593446144848910454538205694706306572792016614622787735255348364487896709944549195654661487715880177400679702610335363254116133819667263157601224858830848999779269037857260280311198381422026342662063039208051015169945552021540538362926569420861452264173920904380388616988364741168710710878690867049601966538146236587480520933997801875161961814869357096000349555186631985485683928861403228457958788444102372187623771126803130248355144194508496153924105411597402335855313255113509767101343546378062092133633324736904548507670685353523215909183552465268529891471127415554720137144953174672297376139105037180054405956592948147551313796419339233477413549525925170261764947084034087340243390848822306172036123974163061427301766441930960889280207606403877279397756654189676055657567593547003396284969766890277217999777772930206671093992654718326059426181711300449232761451968388507467782705281914767041267927566380678747748309009906311247282633359231682173979435326643086671921182615407509714895987003358714469611223275941779106178442993554686685663164281465678050632951165521184762208899259521265988407464980082885262715503693173985793587770732972617402765146686956481552018657175435087700900407894299035100972882186600240014085766363710139804050759537989307617462312907620112845433567548325899137835790487080764426531895017518383815065568709738296377579414449531170956242708930613008467164010991154385774676057951107977433426135232293582996572179680127415298645777268683362547931754715043132008399218654243736975546746571329669806364348671864599242644241548041354077247825367603280579384658291637927324411919998263416431678648713677114153621045470852035097061587432356044175295502317560876113005260983101704322299453403781600305340091967066266005230388613219434921615267685815508765304144954634732881635293044606696305184766990463971804843302172273397311137572303875794711252158571627775565884511983663411063258365448082325703090284780649073194994620673993748512528466382845729857705180092019553452668811173112173383868328568409552799399675810013320177503692393566392002175324637194472203366113393951624427458690807871048839765295947335698020457688920055698315798648956653511810689482833166619454128844353118700418116383763311414609981709784429393733466843616315039227009884674115521177912508630407516485404577003881768131670382491963723924716461383338346354775610431192567582781794714001968184534542768692925123129508604031419479580533066584468709900490391542389243098923315443572394498299838228802094469070980357501898630035546669490402088173576079611465901942773365705198308092244755223638924361895799029997055622401260547662267491329624789932405875272840081886293009005682567097678400059904150747611935414422360584586973522780849689914263944665091206960024626100729407544296976017990477443401660246243119483520115911023442948565571984311748632775605804380169173781439546837304313475125835349102911928017182251501399382017757332884063675255908152876820138072736507428270136454573674101526604628567618737720851916704491879543088726098404817462084523257095934891427370992127078143472893713235774818219227190298690371683345774772978750633350057682887633390613259701377986988492059492657148304655972779702048153546820508649958836751092527206903769165434573265091319871482269601904985782211619337568493577958175983081884616365794799002270152657290955177503534380544368175752813866014086114311362791361131866856384335539043131317262876188528667029860471484514349621829181747660578133255174176023665313369884021359691812049026065806879524811287122708623678971130640953157398158840647107689259776070570113356464285033776973787350800014905654883075437846117267393924525186032846908047227956431266050308565378642019692742845966975881922368366645930703195007678248310976448284229407451629537304165744260919617644499838888411193917433742549270247332491723654857199914364025689335697332714482081460218317666128277051177471278694184260094838396902105746858885720504891182285340590074503226821516677577495945831092704668080919052333317817932749702181914039068422010521648974597417469987400658691238418196162405185534856195898652401218676410563260186172733359777996119120172124068126891946368032342518260449610395456870926519539200552378227231883326671565901432622967239370546724779785992711869305565083034194682463053565429785381030046148435259741643993996059797755707129653800968916466813605275012722341563461212600559855855058217942384423689338439946769769289554088401950884734186513184888956164025874968344802038596410173890102849809927053434713481789720511944518043927147071741415818413782450049467880389260692317005602110540065277047338703010406315977775702173534168555414928311738608055954080821914124755234105391251413385273560914322373061005377385898731260916505168152848434825013870686808043978151385362452226519273971165008595322246039969991122501687839790240437014746687677002881348567657584881253490837912280731966053564509644249010464589964681475038821902366309055020587194256429323132195349646259406384961558863233284149178136259190731589903692613166186137014701076332281441971956246657680024913766717222120539148346842170347293863793739534156853631228307059752277419745258252043376987833570534335440292950399119263255545879895701521184751588697633679096550806017394746242108646853397803731251410732871659396710843922140149035419742476832729904040451449409355875153927410990641265871462202396971762554136946862465747916457302081346275331475297289857631038323399027702005151711869571756065468752690818106497743258863814777644222310689627562606973735801672514228441357937233872685347412010174329692107404956241998860719918676700405787276503413332062996215458027318045678966625037357077974497937318207208945523670110625233936557246925088128067512799641894479360861751553109839324075299670318129571038085733548236092153930077685678786783108139740090611269758885743017818145387857524163603144243375608210199474237869062742366681257911113585119280326038251254382816810791987193947684706325660488556462572342574258104668317097779034403306751469055266799683671857006093187376605398510389773996369979101344344988670613874592626131778103530609032152529307510201862047837624210188351997536030897649272065720565907078525191640917391233138567667307423110426226999613489329045142055093469000782094890960641828228728552652063278447853951940487838664672127751367959140724042907951766206219609308270549686698613648962903111876819702555930006201179339304872816948256021768302867716432756502181866945590656206258723301212673578614469493865248429571296418989758454573122338373376456744583322563183589013741014827714067199157401636634475863683167155076494152702751805497180058223679378373761989591264263486254188144791733288684440679820177621384309889415080003629815955633112538629779927556905635219343173426055152636237969656915367165097803146967268888766667871790228690415359132826677824657973630567650448382493106517725229682275790462252022500260457501601425197736623182896699942579518264299386511094951775197439988125294916754115933999696627938564832618379079196779936944621691969888950533710460102733462021239891428659929794396027520211674951044150846670432315043587824242704600265292497229173837933897220512372061039775263232726916750879830395817661675162471557211316846821805537962181064408825281441871465969521241157324719992424536021871461631123477676084480974964785165860139860355622911884994408048525694648111767277891993250636482078037882995992469662510333338973328450977366980604770482699885431890744824078922139244699437421710090508546549113660803135175473416245013826392675034711218861228299585623996415974081930131715383153868309419831269112782420334073835190390365375325675955950965006170841251588307499503222396595731969117276713351398646178686860275894552011616954916019426904450705220356897921676734717782056231762244405897464558290861435410426737525039885963765899612441219077352693612803460456216767709915840138230168283923617677365531510901246362182260417398880912660244683145411802344169217474964626306975301597506596152980931071242083313517482662853289428133603991033810385564517266480162754504793621411228766897515314416984851659960850965351427532294611577503551184009929240079621270705586152195468302543467186871347838871012842120290710745443061546595647691931186182218464656204631474408880855847031120257931896735054798444544801260940966990833388564908335582769271542114438243017101917150340597099579563085447710644740161608948763615120276227571955506838864097312071809198911297324557114039500845804752229718589598063644195959144994523088189787764584716412812970800461019761924688807414863586057678493387805061988697432169000526482060576436819302937610410255069477482671498977016095756929864906555057807208859654022463801663706579977380959393387781039521284260592734222413859024108244744018432561022157255826174526672984093348942446005535543289326776173550881930327350358494795015475943852907544856091152253761322623762950121995177593022279086083309832097151372320735350602676150540346281110094990326729469511971676581040671964160009690616511752343126428764128296308034288948554084031887329392447723879865010907063031314804013640544953032023559084673976469710850615007438335316749302608437153589972369406270089922710487839721747914615679775689380754525522383066098452346814367076145603481069581295226506139816332142925286680734307479850168723885102551621659597841700934283521609774571421019282841295423242634053867999981836013034993826840346212464530636435660120591256088058357010540012043572608038138936833514443513674031166693324546797942301644611663922273852431853580326108458983551596132095786166972590210307129093283710233303953136778432778660555184242283029859651565008615234069081671534193575502562792258903915202045575975190912960346015543117525650782323660839086688261697823120814263323653534765184748457815827617346397337056477556102920137404694390860555814307996890113473534198178932961061717424124452518582596118676976660612872294990383235636677741979766960981143100308375236607004884658691266947045789997875014730977161737778144897538346624850594961536482981479267960336132681625835788651543909476201492580602192416775591870230125266038334092927998881458831136658552258585844165828556697391050929760520354220166487851239468574213780777907607965785215929156842245721600124204368853380849987752905831724811472227114988588939854212410416147649518823566277627182527583701442230625842580863575047026251076771271918842612030507449461638660705045976455544522274372141094941360687110882419488796460369874918753572389623647530144007538806840747515555889757791205986205737364437638893816752858219929773055130353419325157586612127934223040128165482503480720661282555809469480888679560146489828660885772525373945180857488940404740701474256166164130428103893864282063553520041922218426650870402344787179868765308683507259454465097955044822092881804814338249256161600447453435348152291006644449800767939767058287501990224637669630163488973686371671218484139965989714314468606015040164497302093878685928976622184084032769983335474632323698022937786570689951613284626944757698207153822175662661935604361911794125089330550051574693529753564512720103272686717276781504264728967921872683461434759621396794033568703652891624952439064788161651305164800307253019968012153459833959098367262604349058810571677586129440160788293162259983721019247606065048062530732230661055155427217012389504231462577656394770808410088038657664978252499623851162836195986434639047209040065368267578371472507760308190171030893134043208162476437314485332963757416288640678547471457883741084379107886399123484332843431214262418615164950598619773083715146788631515990563438983495910278183283302218351312402361283207033398858969592822652185370266726884876953672991080069929177355297341630928725607369848701376779297036338971398796043381443519045387021254610762374052630007570669374698971127882847856167599345562358843151509660738195791729764783637698902087829837085039714079878617019721764827707295701534307888814268717054383668891912000263084042600577454542550179053721118670329543023043940158104406429067628673674627708622571059737141149553486301284998626167459513429269775147508258533333382716146527587317499791510026138959714195942462292046102072393519084194939499806681542434452749012504398901514289199306818398942665038074975088069212996917916561301768326013513846372926740677740171561828839901196235071477718993613712210745460458838998758734302818033819511594432870227314712285071914676845147293937614537487579473300476869774052976266413474386105860123818545225291340584085210091309786048330765287505459512920071538417372017116134302662848199908112816654330006855336555653636254326174119349595195943670943223860686916210036442283555500011364264272013224074192548908277555923700147740126803965482473851195933281664078559441031741054671384706437774831221603079437972136150036995966795858806365842313863360400767846250410533713259711318671337523981944741068976372583003269891838350173567139474644053013475427269548703928048861983084387175326486852990053282248668187047500917860922011646275547140525472849750003280402905434808613393829380259700917188814058242199033049192965622371443050887566243277930191412729069743642302677799896230981101560939135220524385989719953327818724460096873461970855459249464950495608107140530689007706171968146743355088588934243723158627496578555497166791821605422834913547015875947007723915130999885497442988832734525379413082109457251237460881422607561813988305218803418134040520041226084169512469123369933331979385980369687910244062673009981935791043480370460718484019722145259874392998700780070139493544777134229691387233856738745120523998182048841160470888868644773820781547191698719387285569405654863063274233731928923851605850800752136902745876902432360180010161216095852705154448695446574215880722894219329318350951523748573593250434625572384285670339139982759739387706357844374152639113471062840694970670278973243982419369810708234409505818046932238947548329516620430360935207455259632861709486566085848946110305585717006913985890274016376152399765696068824426540430609999307297011019923927733131069140991122676693089863782415133625109728579973201467017677624578577553192456694653887315797504161903977499410430679930642476464411225016764892674676163783065463025593576722539581516634274241572816479551182906992024762007804928069776436156843652905483954445509792727774288007152405007257785362371603919658344489047910814042565004772661045236299732390961660989448673049934131551155947243838404972429652481844815201386638089581148518613710641047401772926290621037568234123575935331449336614755440314389323598613094224779485169574857078352151028039210414812269676012135527719908473390658913275671638488894815588515466345021145133129546207513186016371786704322680070039021593884677974439227186628244231479217826821129632752302057536974629684897687053319670810626359839220399653812081280996253251115529336954730109336992986940384849127224203892131249843122283504050832602616014037629709931732611585543803110363439202603179386583033885896306515406619515859925749490288406243026718893784407762566442336072274911117131613504076125172862084158682590859271855234248822383996673875022444012080162398957203802904136499919260014466687725801992479288851309337533575711472822568537275916247686762947494943228677156032753475042985136564174979814187611747513732719773976745722421754967300391095123931903507752827657792842958011944005878924750707537546084753427625637383979492125812843058028259031050749822239064816316812306228926908280717078037870408197140689985889036225995862638618225007518498935802344794199530704517126111995716857779696793894423488980586208386779200684464733179688630005142774517726475730342276205801620744503562594017809750017700139368453772145925927053696111502886451230706336729691863237662918422332174542995656453619450217719501609576521719623394342438316782457621006375156428463063589959801307791745812466683201127213961805948449823296645530735310849256669978467860173803313240266846262959397520434003268071986717944157406194521035180587057461825566955064971623974766909359755280199274001566125080570839720393432028999164662931795203514126920793751855914129968379478637025059462256481888106223356751309782084567892547505625594057419931751269500440521448514157306559450708148384383343177504435884859677831608514846479699029699471329991310340786244324020706733332085706690380314732719499650142279277757383201241012170761865139718417640765640512138041912021566789312311891501745527773617481313658260902193511317436893096360468573057278515790350558068078911844527873868565735294691905287382694501689319854389057305486182746644699955219809427202068509055144809051635934882298599726417386780789681564124785605124477442238415574786400663044042852164510929820269863105823601285985436654123223246013207072042980684960346391329574555842347557685151104607185451456107579262110727395765105887073849942197120635443053045904128055908696388179751969859456682802089520522056257298591026515009620339834206783854611245138469074999383307920670411333667345130421586118176037333932802595081348738544001609700381648062661652545196251510188605174808309917908951379138001577836192083903063526382406776944919808786875710992685758283253201831469659831841248309589481047046907842108271925570996084433330644742763554223642699309875228885170387838891369543148572898195455043488762732161377940004717989792193125611914390494798752733536846368509501945277006099070442324091135375373458343112345920364099457709046268109850501997746982184103725719715175612995210411612764710106605783592741140161628864894506619015068953882233003712516014135655492945475910151630461114275062009881645487521313724023964535172290334350450030462322461841763616216897351674365511400617721668791217139822116516210344465787832946364417833761301074302202399886367167161562728005674889369337703952917333531475078183359268948928165891851638604820621144348295216389070970647677627813290446190825011656947647880869214968535517400466718237340983298621920370576974054672017916483193588677775233135406590579988723134579870215620692372085888815952781936713951684773614708893720855411195000923494087948815078277000344929028302720211364897698554546779376074038681877465034351218614814181854268116726362610287387231285992179485342433207325482547065257605258296464571365382349924242940439074710487512754412413355483815865894887889511351450721638840337540700669463579621030694502644395203694050157106053007371475504414191929998694602039638856265844594228922737974596191046886094592358722083137180122383011386843023276457691376771176881286588577534660939691225945416272097129870927837191533627399250339665308259756146930122758086210149816680747063387743926650558975510572323310502884918925553400665671930581017857044638454370555608537827837625162874813618883224212100611888700582453803184521278401936731796444760254585234741690033643586145227187860298783563482167898520276150011114564531236830942899943671515104509843876309516184238296284195141688906585078880486480391109468266301415410904087763117926373624105619467050653322813442326733588786029155757155799980759306332521096307520482574304492062028774031985068030999366819473857659997765150280983894264846967660851851899087876954794367929539385552034347716962868356498305900702305337309249598932647447854091684557045607056298530426752413509870405340481525936749308532826346410393648342730729721427972166231504804261373122428927262039581842645404858784187994641119438808093088496211508150608534697401957529429517272140469716825432176155549425278918104495345317243108232372741935314580121650374683616954655609552135476108342874042348022177535548804761516316901015072001757078561894170318326170470899545607830130744298003816303395367025315119268665216859585271386160205833324811433302119276602558245117123388700840685005346796336813109158623396908107650329000498889439950271676449906871359923083543397214743417730013300865880789116441799268038112004658689231581475588231984194556590167485730911934245816517313463716120529289941786704063662355853038501145722784093679140689372904458655607843783704835429867806464263800286103565183306937356163380364042990407756218638114111302933506426537931863805667344833039268237426541079895158531272539807369406493450359465187571692919934700694493813014609146717363673553452201060652699299941791874724998827435536613982660707234997879805767256942949728051286340937983321892074014699398424907726989142105290488107633156651577462647219258963937462078911172046072335789694051194666558091248645880411619934774245410096822350064770364175632194541911597181272922019831181305827837850859012870914933161967245809322996119464948823809086995549889708681585561843287546845658949089382091160127719952815814649564470351852838582982751158775684612717119029820236943634398552687701447178275410030362273749598988816463285809240986307742218098394761853767878135936462301945223580787176846932104850633087085253463662336473318635587883273209801299154250001644324621027060677098271073039435138528787727536808100047707246667182986951614115774028344067391472621505922043996219092011792142129077316823128636309751596321567377998189449418593998303002072894788973427600621752729122570947547335010431960904518381566217318225065657105348674285221835251113472637978047289317077024360643913919872438554312655730181497889068246065654116735324316448890831156252219685147315990485042872609826179630610227391129150403624081995321007833808580948532269461682946080779179905887929070270889246838888290936489729957537554679595458877915647202763184922140399827243499528479104274342384450921209036885733718258057285129657813426394782963914564555173848415051101035750656537118080201456635527053103426132127047988771073389863240591080592147968386643289812364207933740523641956313482908685955376361416798969308649749595911767235082808908976426126306334588577271360822000344468806723195095280587333426372020813805269305090527999127400412328477241314860659053926824560069968501936072472442034304423559938845041645779993652951360495887109031741732609400697285335432705258684633273681238589311736595596857526150557992885605667585381996875739713946286480201117270026417039899246316010461251617073399712273476459418264575915948062283227210386533107594891936594852460864801989196333839126747106167213966704910093468575522008148901934643066559504784622738791709274479474186492051108986384101442059109346397577789773564962059170700734069855292162764532485092990951414521294006043674527985934839035081753757457169629464588652434577012205918896855895277332552349601157268095764460206417592389803854881688174662107688989419636955918266215761807457370269062767428235810232291020372144858783921723698549641513569958847446303223755518752616280898050416588655096147170302885783513568786495795407516623738221745505876169850835206787623502227875739581656279766070533680823822013489759770129801743307901797743741976325214946419053369683936638153869540781125649907680469671495491110113113276766578343395164905562915473492569932461338440975522075685239535907544220828283238686423188578312332960328200582047221889300985293508985631351909209193653622965382678481547531385336274029578876681756724603342534495513478221002260863356663567249123751771251152250991628303822538282500228613870393428582750026146749774648119454964777648988008417575891120369253245770598726986098807551728001192571938166913408069219481832804805943867524723719998253099458816232573127971264343282362967417926999673684860960187890529573555066104891827647533869469016136237658453225147150809734421419955638062968911192780266789674529428651957293084270976953484551943909064071050151528830588049554494857796795550058339087794675650634711571197289963326959092814508645146035200745007008404191900928291792113024585610358034256500510435276188327997462330142481472163251609599074930008976398094686150556602570296090123731980640392904335376288892511769014693012066913274384395710463600854235719827039584938365126565297735408259062009229114200306479027125338400724834884108543696013242358993330592488802025397637130267016941532788792181405930737228647953081175832533137848180579473994694614103851344656773098429406938410903819033147876222657187841024421869804662923352255903154483836001280090645539002848051753857688448875805300319648034437760582007516011786935582098293910736369749055090376557455808506807795507089993781482288820970048714071003834085269971053133927920082081247958318920688525985059572024271628424835628622267364605850400860104729926410666968020293633752346724796633726758595052987519483856146985665429403423347682494973341897015563221732169857033972827884977676755556346898500613631578132955404507582633838376762732692188551386582329073388613022589473955736210246324716798580819201163429134057227005320489097268181847233769089653866439643071615271261563406271510317112071005472031815553254643298027269694830601062047721344936564088788939028668360046161179129500274086565845798712261951060164613175632148835658698603989982310148770965592280217073377113814643357584947577262827557426183821905405377332784118630964927612807152089048656305097324759184227602693714478802291087947860087906772856640176067325018771856280202128643183658548963593953702438952359477362913432726921875688121604317269448388673492540933568183435608205104957697892301281205838965297704106897676567120439443446559727290901481188699838151213187625307593318307285401545933394516809862394095047763274945246789223065301164381045114240018891596870309114318821472676924276937916296718331887829225816818902970514108354338234437520888067281294416660174436649478306410339364444663008801839378715034162224790361560880852938750674614966402976806483452030794815598375733077190895177710149039303883108700038931105018601105201506455107745617703722987464908889987621073473752922733731900368781485884302638452253240832548128515679201775901442779474551059316609271384863732747913072790223991424569945467030122586693419458151728185388712680279057430340928719317326288328684787908780989242672530330898039124485839393146380373178860045428150177042476363894521224968426168183073795174233801547927856980182048912219546670514041767789484728101507192146069033797814243411858038024531487392157918298646897249366491617730554641365157738306468483386155903472411561896064940057697122111201860229031158829282153955491288557068478267216251585805130726002100809070308205111014583668664746270797408773641233540958695774882931739503171273928784391131395270914167428836383264301674152138975370744685208736922924143152134452019739296997732643847546468728221420844083083348403480496027889253650107178386050746982122038076731185895489993301924431890728682861078263114847665220278725251619427690999312361258051444014623054566053837279501885403812225888121349948480788648784869140202575017734917992972282866472344585175289817621627080980506896770234258463993148589450423626170000287712283589712337591773681782834679710709495040182787300968261484773875191042052859648014762057882632703572955957736140443814203671950643469977341710753386617783156099171375025758106528456919989677958410773579017256913634898551484550883480954337420140033063903173915210541781064773836290942115316961864547228447348948692238582652627883885265705841781356332733923795957878856537697333272082283447367876987167821434900296094315956773937598792523744483928521044558650727372213442653246256672002715173720900177882131916162759161723126408288202574005888464635101676336917092413343370970423970922688221445449773958641854040963225774463844946964729838816026607015207183754699979579577378345124881069871160022228637443492156100098708298831719028643759842341735137455192847954862355058483764556721129973102391986467570907226807591864302096097554653261299958125264711330720663671093311183090067688972957885696654669104170884849093201718368387042986411181429084100389559802533829729622220522298729993726085445646692360733403174823524752569545388523490644933007019254063394348408364121418266479206830031544554289467532323046615030975702564961437600913693161362828502703033428913389772175666774174225990438425349160313883022750485888881950701573654961131131291406022146694775726369371073241264757612484645136674289103551438689640047614856593729821327708122755379750166621753637045650563362056263659092062808779140740158917266599631595914111597914006000916910613308155365888263662536411735021245737963481081507887376969078521145424918967261744092395001200079661273057989005492345478856673567779652796325430560346326862958594405198375970855542755921453287902903376809444668252166055763842332416418601274783651991111486560172996224969629771251705931510177305278417571544942690700920019317608139259480335245290352439409582338698396196133651680216698697307272742357140420257272896771282832741025533897267061598734270593838752421152090705162393780295235919686987135411888379158724834388038819526123605548350084551044638519350515949498442495633970583837491450864871330981435485815992405369854554951278387203082860035307618883149727862485022603227634467438150235085920571075189118077050647612201668830219398217654806513366882495886286905474199791841525223539265617653961449490880212167191770496689443880064874787106912126815315739071280470830666239013125973053676899363306225919202380350384048236992350498951896649256121450296940461158803067990822138679397198518795879688442233527425163013632295507716416385844647592379540734366536884124012125440134286314316098216668901861280648044818455881447874261962234701520547090636735794560570555074268135405183444740823929630945245418952480615330692530980120950316623868687199584914044199299025834842768243660851375045369048963420998730969231931905318638268913715491777189529799981991342459748402681101676519883098965859437657127065673209335850038956913821495770857200347852446890509305642601175061229452389349295767883573269725835665349083737613620118404852439799276174505310678981281203157751176497750086971240832938404554506880671997298268024922837143663852139807358399549803843766825502854481661177163061202164678926807680620035411488613306379404123576378774461228422637402089721637524661728487116067041157089674044398709995801162868206341017384571438517087859685646686340309876139502255276982264506579677599456698910227004308628542617909575626637221669863202542282517287587783659666035783580137478734103962290870619552087232259902698485590871472694325646317675249052783842827081444016278693023248799425238536843091021031952983429610565348068376473052168220844309386088085386152546403185382751574192007929702857158167317736987707433224842482238977804804666189422269228644125636316141866327839458288816235051993627393276684107577197260324057237573954134781697899026972296607423483509175954646881973102436893861315107710502442892574742498846334871196792022141906108506808142658228379781782441937039471516579706592306032168352880448226473174067088882765550990695762342959951509368581321314978782819575966683752642899156667174480334116139165004277552558003623699528103936002436426528012127561607998299494582948478806837569661756341005277526418056379503256254121329073775719583125118446310255779785373376141661252713991625854613318461928984258589476540414729597235065937991232387455505750797999782608231794526301692072539184289095509277697083236537525013125049905421023769771068659135154996574790470076531759090914042095326488440958418073001797341754369183563438385651543195862467381250355416967564825289939317615752238834233933164522807257028574986535100816776634280725003461329677007523140136659117078965429921656877572921573529001704665621453483861410537360980015801041751022889224721302191013460729472742027857215644075832406546489327935920664616653110011134717680033216331769571592125674009724174499075735540639752304860137414188116993773207796090253565074963925866556143219646514275008436337308640558679817958696004037842425158014480172093423168999151842827004522866064658766915801078227281946666684735477365371357494416944300935956518481239730039278083476753678020061866644037786916270845613119432178197861525890220499542377219813964978351540825545306685190312348735591194618870339984329582290886615749021977485405844280387351288793943383602657755519316181363990783579386954607780347882927818998972715974991254867637782526021036390851759045361764468524367180239949132415348753716805856576369013657251682734437944724499788895932738969481560697905549436561071687787194789603571510555730519387082774138725518395351153289441615217767186183306127864902525507247516830576625784503101890708320655940864359879667783063280813103878293813246827736627717021124214826554313793831511296514969147105164617821795760332565362678369609982020041676401643556664782160592311442967273558366832328828558998418747411005937294548082351424455712895268317269918991659393087600872360646679892461060014809581785834472012822106593616156195589019387669009630996098668659862111397112718246260185285548727001454578791391437428888206549689977244098929586562495166639173716633048689947598252644476930416140016494261116601234693141231448846722412648279783262195940897406845126539409888222122243385242915322999926300217433068578521312798752193185861023158142857320884560356040623208271762042095930905688410044528825323782228654337658267761973402517107178024573527258965471494135547803530321573313660378520117040087333242158685331641083300310900092290841509766020975128734740060892718944440294049402433550228175057602364969568405561868089115339392562696338588489441997945133078866585270395232102068577607459048924083724179068805579126106692119173133828513996731915681864674058241252824279410648950941934883515735841049113461241319183767253104216376877495795645595354496103426120548972386887144882479494373975494284662087019719805170292034025955997584929317862593220299447196479453157963508518842255178628521555066788948193248197524943323408616844281762764809656073192849345886732930413062644502887631641438233552157998357794334273352744718111375389647608005164994759531439542490191315317400013063267767867534760217112600690458372665687565534926310928746317201392924036748946119831620236538630031460585518194583288929850022863703864995322234098688449410780257146665991660980410653250844827800681462138672109387158501813005622012081266053441784486218566820715946709180937165366513828983359451653571346625264830943913902318116922410498337498216119096473863301828766890764273379422951223654635012503701512925132358303979621190539568125815251565312589376659717827655794649583786441240984250162186865854935154250054903231811818231626491328130737893043909616760104334817410081465182411971340676354799931502484024599067611700480406250971651601440852790821013059049302470803273246096701881133716638496977444622447383302073159548209893345919863972014431902284362007437427237099714464443150878308033459639410694863546906033664728462471339419039245385785579350107780351218894342528980980857906128654447571834696528642850775450548235891302517399701707689965252407832199852204588757662180433105783275561829792795169563723653635337802068635793405904290838535553459966986997185477390748355001664263360744691535869117469104374183580257836628208980345091606765323263883557989330645324554220936773198141612955053922732883774208915713518457911540075791809507721410234699170752669024680885934556917775956557340383906046557348231935695941419777208013759954740337680727678835076943994468699942055967520113144914321203110152051563975434167186417410998777108070824816508490547090427967622006097110646504867905821297322703428100014980698045083406880751831481193108663273681180064445372277807851127642945210542003931006516091501720575513897930008382624234910779084569157414788633693534771232196063634705349483131702208181726317316237387099861528435718478087789166367003144551084353653830836050136292249806932792651602865928860699648636655244836815657844163137752023132309255101480414206254293641048575356494720560733677448218487130310304825421394437161509164433939874893768505469372369765055708171246713699352738343361675361404798937853255567704008037655531744839219224084679129008239885561022071013599735201001470127867400927051377189398609487922805083214192353053305971622412996125323344023347681411100490798437388234876906548542214881409927546000464478966153525436386325875184012670485492605130999647010128975805196288256082498191202278685606294051329158683044036175430765216135486758338523272932117846609485243357393191184791887454279779153666382693145174538047597401789767080774201163429868285841378699753720078976627185755162600961186879919554947557651712033955727506852356830349828843591652488536331910926767999406214573218963661990908316393677849333925653845882641964327092774120222069455649986752958445625138197154343614247713996269058488741160390388398306180639146329117481394454217817449604155100916647285288130899582512786912490847658917969178120930724369558175737789435357874867258167824773699006598190340681636570860994906405150307901531842608707796998618224159244180174510622164554659877241838195289591327192359662494816623902638736368010401691676672623637950951666225082525068478349786516906484797745301302435886880723969963620402558602124858419504227664311648580106412024153364625930347718794733537734125794531772422988431715826413784762984411393863062510763834518077473970443526584114096719935535611130916363612483745195681787264114001731997138251256135295492140447410288526188731168467849312794538946132033104174962842736180143976618266145861945775753037739532136675895795915744439507648048715753996528423429292669567386836709683373363055067663818745879426285094424163204478308006126221146549630528931264616945341139642285796980028412290754755119201150455576587731424629818608483757571172631884154009600812930982196866391920102216452376599211422118519094247512366347984873889722764365358974005166650888809274433179123045413069777629049883105544145739203719078552001404175441452757494947209651948372868613437959638529497235697646164621489239805027861155394355226909097446165131290218958312919158510096900042551209849529830438095956891852477957149316821980493365998114932142155796003326895480693765726322723856725815055798526748976546304547727279962189057378060933442655813611093842530473097655035764710043046450466913869151329130604895049989158148006383151548404227417386239853205957155395499269190383582663825916717034781128667040150434541811543808756006317539050518352730267675865318131221276662053125929960184986251846778554436584813697553713448951975633059485984515022075826695995197045364268667578430563611789219760745796056596574682909096383748074065126811243268733104518090350293070541126007415574954425915620558959821454706629301345999711090597499436133100870434765197089162425819808619250560110127684296755017692077008152257017885485827636073681526128410899054264046588283252265200089035209705243393907160232686583496664008630778707105419409712254861442957012037708022922362449723616232198500462116619313612172992049791776430146727221000341748468045650363018347498329831335174418637210037724878893762401956241279013765151903688664031980893760698710574126191311903659223695558128189467225887788591305081495568432530195473177233794137783021274730937652069577440892597900683330693409035464065963341354631480826375837511254531154755975960179724523548344175146238016388165172920290790969282721683615723406598057939461024262180547706144348366573624572573096316206466861623463484599562122388993027169990575309361689939724445273611004577736433602831271012454091437695546456294169873050129994283727731065640973446689442264110312751128643027319412622483276216944768343604658312825535150201382468494156970963778501183333092981408780491180061927934086821957854481552063713712082871041687143213178057550185539151005358085260410401300942702901257600542460710781446448747886066852248640065973802421290698729078060396540184650837634256195010081800234801687202686862730309675729806324884387124919162856103957632240840304631823365505396766552863911330144028837665486729195530634544662897877736711051548472601792551969795249920563104861635220902799598414078865750227257730805505829160255481390309423701155079287464047234815624319523693406004343294832444400510773337757733410424615658212866827166428061437079848774893323525231112967390863785733627472621026908741207982443377543584254487327524161586226985440091216184300122489344399899379116223269810062066170319149122993394946459553714016392147970402554015131123903536341838289441676125439220786317803176224597499114881450554252510068325368534033913380225373438686099428026731008623056885527017326902967521391697820506135287290303964245086112890417623470627206549596908721854245360481021337362774814280714167319543832653381845819915547768373640783109142181604896992157293636015959809370592552287141280645076115652783879439463609439772730743334474937014378853369108398382607010107030619171973576455495751324615646347469155868850245209892244299096987121816694890910739434368406360219251417738245274948962830550538027279895117160318413998460338926363848859273347254570953804382467959693273959943800799617544131625187787589268280397250773293658399797836055422737689212853822232759064127409373998625073613523120996429733808235764565148749611375481583590482394043132634656005478861510764134336221393676059221482132096180324619234570160128783072054480179635209091685095057547671249847476007122441961262645190445123192614101317400715486581323542395917930202167927480997519103832559563140149115949587203776889796680297031982561569384327723408936598378132404199986343097114989361460884531664101630639295300420624706087415416524416938753830326472630307412896165689475248745292905217935300601126056135575618948357213054107066061867566534629824422139626008212218221914208771767235594530030386014348204502639214061934008659605979419007438387489921464679744539346568605423927823377623063917500373129204163919540150300203189524330296479578890262905464093306360068940360735048660628363309042026411131313699524799539285432189318851423955367931104516354431019938185072782634920914139223707267029905340071213307716215745359545337119487152941421014610414950861725331129927163859064176074344492486198680331780317230001492486984543740481615787664571345177833881063579691008032611030534465532482385584193394500341457414900254238706634840981438180153408867970104885264172113385557865462058817434733722955212783665404755530933753526245765219221316903771032662240598051873205387358161354489202033904909961553966111655587159232143948318341014543124506136683536904843489776235067465220943434691591324108257979039400013537287919661456108176166108864920844112807025212857221869254800247095300447481524745021140243519326855937691979376742561307064947197049502064560998732954515292908702972761153973820613273170381094710505932900612098982006381530890732469629420215200309101101876005562341349836407891885262980769573376152620469799162420104142999565604617865329030354799862061084587367767888169599732521428284063099594351340819341415933929630906906525124583196577446192450281863780401870980387302697341889285482262446111499184481481034382742564454506937724303031836423849763761687466234444224538594113590998092864774666756266964919762666344795488482564645112831222932348422569628904158107472666621634707743324929012361586101423996168141307490968065250309445465782862476521726473588918781381323520610944545552269624244870702366344764128776006098975208262661922855564383353918178684286299849524117823525389742077601654006388132751980210000890738899437366038866968713129538513809207031247939336709090708992935027232678579625125679298477658954414985741971571722189097637007098989299385241626037301871491837793989632718268827286578025769642018301566296546152739861070224710229283112257194357062237760069238116040730338653955100891218824199705026413480073106267900195593466907751464135854751225914769925599324808020950120926805983447470992957805190248158977342479961143892882887551230966558190608870114392351769062500098601256396042817887917827684528961169474226943433681644365501250799729279320099524706273766594177466900543706348259443935820197825924853485661986267829182984726635009946434520000915293719334799171815585446775469888403094333323730061010882012046329730711668910775357259257731361446398582761271156564596209687340890014668624565249529647896676116051831137355351390597933639807579148404495126263765620276254625376436806798725275460229722170177579417793001502741587423409578804171910591620476108347879894842820382329255618058309936789525039038098941301897713920000103263363577779152779619327288873327312964384529925883537894556781263345799936659075010840020654919909495398513199751610348578066340793616618378549744756332537059854699535114365780044868247636813106006701145457588831753940726644250221938511378726360005067330518518802254293955301579011208122967155857141691510718518556442224688645843619890942758138288144839929214386190382664518311477917555177727931937605100837577207676230555229688500948294501707451708775487196620610139746619612626824298314812489801278077308847917891846265624413953221579408025779429507489777909980885171946758037279677654612680196665649952029297683160859581003434289523382842310614666496917698679786416317151130417238213972764037661766821715129714444525707198435031035129949295177538246982754271635354538872705304296309378655535967343333144952557150892965633998483230273639539861189176864502101998815105708625675152241584884340977239592664997610393743714293305390285653089277598067017324577683559172311247793428725335963846710055329390602251828127001461655627982178526354215079546945357813513364727654339060614723227216958627222849244472073543748561316091826642557305735835147749497717534198812924769070642491321625296726956483350092369477937035901600178766111693083762326177600516376108136880998677048809453538528775381475152148791738802831369140714895650385059613624187188609243921020699637121959606288119083104523157215195261330298256639746466690090524649281542394238643891780874873497325343426914195862500130739420225232978126886618650207286994177647492064956352382863619942314532419629704834043391720010353677687183982579481046247442855524319648425859993937310810373852710311464848299891443354599563178580793359772207609565412313556483134551422157899427804560435335268321778097929886845336848502395370929901812786634014220764334783788839605220038208696969377707432932162469222544504218446914962282249518686760271778951714862035093021308728843566142138642355473588828774448388712447550221559950310872407683363135980404952489228943255157873593339531628014523927934749863876368546857552044555355212956672378793171146964508259512923929263060944539928338057901608895787325576581724712926731303990069428959504785607033124745460738271696496612147794735740862165034630775714017389354069001569586131885101896792532032189524530066377445281659985229991797241354131647535625252317182353562381595289935281514121038971434806106006059293751714479593898503648968259930547352522113470397239374975613758691213447204654512386300461278637619241874138419434644927251468506590714624912690456116389623286757057478722107321852001992275973042066600015773058459947784545861536244360966004856706160411225800385553339597334977312413455701591820496527472650784227780071146819229796647851524543227778004558345878459712106612458499241139035066898561511088989125022651341578018470397356020678223434467981598863332943043203715231741099063714329929708316357225936603724882031567388014167732200593165172720755674159353895018232319841625117502123464992458068012231320918123087956915262754753110800547432372251446671415337452967673324724497213968577618748444179435655701861017435368113439359852973645861125494105611972305566929291493374889782333279332180946456177237801157035438317817010886944405079180549351277205230445659407238119755025991437156263425789679117191198319750592509308144804789105306663889676635521923141956186748482360454867592349606869565984439219253843940225160361952223808660197178979541697119699541846924639134100269169235228951746247373350673756186660425507567285691596170633693782467399083880850001859862101312968851071199315951430612816873823783870724422453328911197183965832796336863939911724687805677794328547700760393638261451561683793003904600831430987694815512415653888877428884623335982837758380963814913188244646643145294119298315325827419391114133321774062466199809955282026472127236638339412761681286613123681863880294522333033171478176799582115581148192785068936360428006880693873186307104566831051665353163552074920391632782117922079468620177656841134178137249503309291447851811426720423573105609753251031506595415014299181037099051647594993458050775170934638737592526381933538544070435440024436788582836962491939783454162816846984921384047565044235103482653781264173933819381833248826336173042132164486658378293117259882326826204788245961833344282762076547614312786850334674795143693233820821894690814292377357793888861233374724090267937982681216404185975151266086102293275325158826231618946992319855076502258677867607523514250025343270218425901229865152201225180013224201006379220750910654339678025014409565128825840136406620033524962529882414098827066437653570620377133637390445926677310922973815752909556549972107345532691305639072359155763465676386702446166189007533619167052409076766518697787606481926631194273188578634553984742404692419881835397601674077745983599311473914931355756716509919009890253381239342728263936813321557524519899041557384352349263151584325429905394101044148278119149271406583157479019992260858534156384940394747661443194743510745111250943216266470340640948021840469540554462177586596890924377235136889825604768709504233872674650017772159719154769090052833850750181780391309542234761791535403977091031621567130412536229991539466063148497602215657765707523600691509411748042244576997742692177745227141542416473825356286722615263650922183448043738018546600209807017016040773517741901180435146395587362785507743107319387500551307608323149005146034706796696904005511085520476115384636483116703559876282832154243507583200527754947466120705704217316402153080956389560134000550641321025591973602289450137413607663742485360543108713313860251335663166512284194349618890774707702739905887103482588604588517447562812936920013578515562904031302691489678250445320313595012634367837401303557164510264634922132524653901866195314622396292596371936539374733030019671718216282065370446177275831742233652022177228887091307997341551876277152931923657397196877228066211065877382522571668601289079004982891608114910216922824991654595814386621195555579531443672387016775754885372916284419289543830082077172065244252407815912501846653309916395569997983089197871147657721201894930350893064011079639622900971348163220627639151965036887161032513359106455354090485676201862441374514411815905179369321830234754067680360571376152838833347076779233390657026897866358918870384385385966440754663215862546924495770322477073749737924640743840081294887174891998283895611116923052015590677239845971027929672493408999598295838013753401622607291097357785539979092216687103899290787948132489928483429106433134903625708652408395710923033078346055101487552681454304951513889639316177995847481649284188314807420597282258560842868467693582037708680428555715061276654950222945571617469142204446068072376144582600282193203163168328586344037690234067566878366337142165647382203141454595015021042690204287904298023938643018720606776279928221065972707011935525615454815133378323033437999613013989407180352283365366610414906901587363559592556858586580647185770680102001757796078796089664170214704505069745828527544887677508895376944893681734666633580652692023501267845182770348430576689318280080767036670286041320111827163583488671651722855867272482137174163512399230199812896158930666771421505667990273935530302715389906831560647104183938834360616563913805124280946692595174489641710580885073697653426646308609941268380371726194336085577958185347416407118548522213803847807482773622428307909499250799801855525308410373058899666596625024138127019936619491725753361715593853378019722360007163600396838822731010982797301355028173761075259147978119926375887286296342957171715884152398398283600633181344281330541862950691057223528226853231884886446126490242134412366609485951270973836982397033345197487052110923480365814894540649717501339171671793372820237993453178437672779145697882119078587062895341009652272851308721175914568049121148713877471526853344919631685145453490277429772616411348387046692555740291009558295963051029753951543347331939057413662565512629634204911710822623274815871935266772298984929891816522440835123559105751199724564016439700956150244550467212055975420689358489014303383449634995317094611002320625694227327962159681957333057267529017463079238505417368278991727657385658940797973741233159973718617426921835076723561041376067201804463566477345388320376176542476737551243477671286138495772130377662266178570077587097835352425058042256056834823986744863372914861095566487696604334951822137733769305302313886836462971640779999956154796829011377971582848705193060808430625375326910376327776998699361657514572714679137576366396398700256771993748590912383764715680156064158568797375100230662982624260641310531264321899764342116851761977415794982859163224549470065511255973151278031535405876519369952755242984706553728233264331847824057729973684555579481042476677605172593234508597776470986444048133354771445645085064954498849700715689322119053261154866789310001465358737591055628307807891459779666623553209799271215275634718332569798248501308258797577451835285280156979814014219357363851258002719760953713782291049227285769467214783106471978737680444681219618745929227390801999682429994749719543108042081637890290004781458605360269283866950936590863021220310089650677984955524230183470430841882101751258329886555441411430322829720457540778722507272643624371426281316697515480588255544997653360085078618910940770576344902713470742396223697913710822014550026478745893892183554387584590306200124611327938757250330862781085581388653094501939995912958413124473045322155818042930198708545545978981528308012488628276512253196787262171701686710003914778109920481238693950959590088750842486634926086626888506499566786107158684760400663898187393814980927292613077933183704788088618355764587216868160869344254539097950274037774437954755072971696083718025026318793467540943169343739826506396707400709301759939513737399467153728426755383271066969611360659006040603810593069965776528042600231498203276214327291853289476761508994558241757733301700657906726777771339825959799517164310221488721992177668553160002030310092759053982727412508348438123864821992996346230733344725815107800961161453065177484551310038151274419039982829032774182878733793243130488182454111734875238661821250224585257878980080674972137093213632296095820724779098825076151408266766003792734008290106428300430108898851541531423045636179243740506614901568025554522501760595622969191762436087121176220965902347913288086675576283705014726974473306689013051198279383524628126844081913684922031742412282071987815652317000342629696193267149632240278422038998078045787398502355056729830461331376975448341162756786732097350767080081957664511993291616206783512172692143904210977956164952387320424790821958560971053129580462827659531596874118764779046516933015284231553868666712232446832717317973223185497389436343736161775768840241880043039465165452707993846636186500175884876777669861864542971906439300628433138683226024443392026761703033613310023367397481064223596086490871162849173267184146620972271688026305788200437744684814642420565382444562156653468059785439123661113453016253339750412241119347039750852016386645238501473269148486644239138091969612982195002213154768248663310087916541452399032021002793607416716582575860789934673338838698855399660815251170057822850152103466886725106062846441405273761869616148135828264405760669129491409398076747178052267720117641569257091977409144715050302375565923093862626165280991707398975039383422294679866395512846685208961743532121240686295478377443583717748732050679945891842579229267005268587598550342026009145095197999798717979515339678586239164520076846862218348638478356781802801309614756065872992676599456095717291368161777646034726011038216505308756084086212815437273611304674486337499200404131496703228175267611373375139121247762715731077821034199818659391499281726863424297755533424491164125478745752926291783700392929930203775361252954296353228754203492119658277517102936368749460182691329278649787284209026196486333409784070101986882513735104128990803412070578347190807245335553905581677916896451023438851874205085038022003911293586861786446301395986637680911364263568777061416467328891122922347115744313757586998736074323938337561147012985566492568235437570778313554208501411855472823605847698441320190912886768677025353668033718741373154907518746029976107254454898910110395370389070529126434546114364987971063899531728172080570441517197292741474794225199162298308722868712692055048546681042460685097972657358076635453930648935283325904415784180342084092250578799744518935307432609762939726739449354707033362980396538625390704743682640053080706525451207918141095289907359458339871935684529507232859369074540424101317668960395446359770997815670336973096948318434551814391927970401561446488951277366190486405405773919527143170551930457068232864122209787158315119539636932422220307425749607271315211059678505463658325904270688631503928840625374003492101523156360459162958335049281723175161170037765418653829012663148465850132724291537552249716965786511592128362758602292550393177653364438804059099222914956658605543329013425154528570286922411731291143409161941967609904205132313240680486027583982988689176879517844939952390578800125610649374006971833676465435655221006714541838060191739629836852597280189923628855921753732632337910061957752049029419816801036936915138455614389094947245723925311409662744049003654958263567867043800344218153517726322420247115635128622753431237023040756385894180921218348360592935416153780482000234096300658768549171318486602539596744838008390463677362867307566370642024252716768486695728225622042652112788579885549958437792362291277103956760659501441837689342299202255764080471519920116805783118692098924608153425265052155634669999898134348445207591878754568290302416040368516615823607549558828526487457496659190862054898904315029065308740278761963428897254957699038741000264048525973689149801546091614306409119583170767463835698496114673956101606002960723482195688337345829082578786635164258704258710845691127608547391820227745921626012614144184801763873559177434751074705617745499675974251098424124353597088642081742547253210534273328989226110685361037597546231609444648445525066366123813186022479009135164693829910125976903501888411417162680166880130770712765976256049806979195117354981423456413346296821370991761086777061095450003098436188614095331925048778122826882129741372198115617952403716737944347740621083499960584847634302786559670470181289655521187126219713240158191687584398578554938471138406948480132924257475377829435138926352646956393567109550771179094291082353604626214902647161975319006120233091149000090901201990266193512361573065147755799633068778789383944388117036428929995831630664931399301563338934761338072635746137982333272397796245874015555193123804592370902604175454630121910741224700435212065978076494078218482422957939311440444284269224872123936247765318066723567810754935349262246984573873114097917944331108000198377034277385566123359670143824351674797113346459112011751867710101470306814741922644877648860437957415183194980571126525748260989621316531015800322491506179182369608573894062296729872851506674274389931256023952917307977683528369630261367297673245055094466607065247962934981348397134390987719579596726245573027054021294339021827903772452261726585591268941021590173028156264219167430903948658342444009775049369993985203660203601405892262753452169167013610991767830176491022751894898398740734706686897082242971360248798787839815309379443558803520881011847023783565864115553863842599770070431177422559391521415683502987910132058364122872001085569856872932532226010979057609105468569868515709620883780063522097871437103230985253698157732015974849444625832920276225925487028684674322592362998286361239473534150964313759022606676262380846992420898622968671705103887516318354222257677856244523495823954949477812753557596254299061848076760603813838142062196677038855118272024017270543231448721756367665477152442248273908422633856131944730778375994698292587439617070685069883005786370177383647884274555790297109696941590672840925717588113121125049799684676235997326264367134283959320969134575800347680654776152320036543732105583999880008117552644701320633111362428175504312012652447023255920136584059309662365803217561908580520446167620283865103785092665631542580639659548087789882866600923524700306904209838342085386273631282915514537050994026491689677566088348276409759742050724422452859453276830756857649636054148590330962410787730981560812840955109531971915294959257884666536211132937020086138164267438322529674604857277661188233562522012092104691570233680666973608951224606518346147883648569239726152626875378986511639096813863744532520555692777345364820841514525939492215104473848118693768004493924226272778770609316540751204719517034241913549323511914773807968943953777152627182561950517050007506911317343603733548116462614823518431752136527676340676344686702365154783778141133923143717359749675767436961558270071202254253773107866467703255992637196495981653625761257657493873469451559978793726379897570875756149532100947925017853594745729431066066286464010769866240640350781464447748036450115588674707589104189561218368756946125934789029038836817140488932135986959476066123191682907296567948543139413321401245398810083889791275147632667360921201299874267275118173075410435045375641803880539279683027775650317094530301764848203305829792141363648323832562661972510723497151284995915604859460867569269978950739004225414531273751910366664106470011397210747765757174677436081256769779142578035630807151170524291243718409955372970944942034499537960498755710495000966405642617064071586225251349547511367541343301216539547184785175230615748283493671166171401827106291136302685212209458879741057694691811604865155188886420718165472393885063632447891031312451460025810616393003615924995051400126295554470850965671353129961667600437894856845343788306264271753941418124205380426851826597399367665491830305323076189719747467832781829401905823026661473541067383049355622449790553492695729165565331239643944449933061287531092859635090832416677328566770102968295449765949119549034785680543360113946952490621175195347162044015497116300113289132133430414052642790329400109485937966236716350453775261740134794032401792853634329085353264623195635447024807925868441669220098480781857132090803462601284593637265961442289608117248801495302727477846739864456462660410449447837912571715264549813739460875561332884772004648271693203264543487005030779218877723636220432116720785559199605550213704679001542622230493077954391637256574383798741356335150625826948035710963102324036982378431665459176526690971232248930779858824736159780201858173703680755004657202610104394672049316906234376431842033033970867456143186854545635923270816652775050715635331895800276654706468909239198514394132359359864610242173441098919899519446684462913913141127064136163135091763754772443494489074173419588595306114052492361180271215624076367838452400468298798143969479980895926566663817637185417728545419121268413482829183591056426548853741917238938793477578255889259064703114742581681876496973832669143120652464748211699705701458240299183129528972907989844567362981566969001362600183179075468900454401878885234418486405580045972837928800187418935172862830582500828345433846234120699105654727995568150875747555636819376401474082418030150719187692372292372593249202084485090504851245095412793369256032406608061124485516316454263192841481375919147669413950372220575104572368728429041911743009599186446167187094192320683501659129288776934030051074086306551983923879506523809881649416561576290788415515818197612156605643421768341741878774817980667142665493000899578859797260993572565637053841171456240401944731667732872489636069683392863711276383439906822438742225011367325684335669994796873330450508298032104969172501594309852700117315726842313258548001922196134696000413588894321635724226204312862621034920094518009896665811775551300780421080808897431345124554863864295373326163626034832176752850733712375994797077361716093836816624098333366439179199828695023836085282827398724120357639622772476291873321892800421617778889231481302647408422467802660242291348328180802762294401051761853426000181057145986596361657429556121110035137814656100167119935556825612809687379285773703285891253704223937560219521239039851937720260668736615038169111107065295313089480269957950847181148617960218194414777950579733205225841973920202462354628946710262596134166083458199387361083093379067030585709469139542667319399605341798514656180048695611737755920209719731538136235760941074129542706196798493551479107091984130415795931731980290271134891665705401371064183034323456718197464760211306146923905105630585850379514932492464080614222019061889612493368212369209161349253013493291489149597185041411397575122695341578261490213638588286872198718024079220497364978127498313177319585720067224121036424237437399465618681993750902908213256051593043496194783423362827765380642938336610026021374656953786030571573676363266746247598400263227217935454316800257670948182148064810693645711690852201827932507288555056376959403208241068675822663138755344573433934940759030569514699977634233922906842636673756323672324868880204193775308309638008343984550906291356205431331487148125380837226541489508870326656009700662231415470134675412399015902244866154582757936815006172328558203895705219982348721631588573472289998188917816896468528936369111652404828268847816813461810269335113982811041582981807943643715082783777757611150375544125727534748776513755055827864565698021914302896014177370071842177338356774678432453160082185423006978452881385058334018076792499214289530283009667976838607273820922986211922001177715555506298182253990660089549654554303336934993042088525803032955338321853310228447065826473216270965020630328260989542725033292864538307415324969250059295023349930511210148201511589932319158898893297566788175384537473169796312432212971229105268377072722540122922794228655974387654280213996931272541363248093082157819370156961029336788340499387758391253239970201652284325078261514205922969017379987967454410449139155372845429896775535047998088096932344969524055325214947444525223048405131759984929089768330526901589646992878665450839409036694760622072731471331440572363875391227706046565237511468422953910443589157066895535227730963981193515693827434549419764662166458245496787582406676453331303188218402307930167246251193289009070749540243351238910494174512198989871159189868073710276911485914665734519791693612652245833168109673214088827228014259226041242236602537139779208909696645553539666117554813859245052214509062369605955804169674482972688241308419943926661681706762645453841583984432967618870948594297088915184919328748433348211205257012456349172295060552052317483272449099368763493155197106902236593820919208248940848903951666394539014817128480215631991484059103966858850872447321678996059110059122184443987774754757181641357730945636921805164167403786494936935507078709453014288676670489925697835236845676362295147194176026402433360273355523786287866680262533990501961905427419108909614334665959477725193947681276349354744648289957567831448878113339751904520678146565015806921468591686915465800806389036336487593712442335913231684726430419674577138299468439537995155895783295053092617197724778301153875875193879789434645905785678261145985003781888808723303932797340823610413096233714582708032571971594576165333665236489784766553081117289796618846186470076806472262622799231543251539573081679748903716642180547983445081692059484972605601576104547775806054633113673230470781501896256443177074947801664218836875711970092098707751377918305835999900466832292511184324576458285917771269043701702015438838838879033238361529662708838977227183664391831760358838575638559459334712781690376422408770358779053123646083522686352129496375148493191721812225403802022945098371436561393771934494320911322855747395250375559071815708120170587545797229798927947250938835130487863936241828518535390425862015830813945039558952968645548426220521422374597892952717924653562240390986349953558980408422531030573842281920674088315091012746802386059766060760368581071020376623326234619685147414087564789738308539135699284992604679928054283266335282751156857556651630530137848926151619545226241700634595868030666715904755464153015024110467737629981259170066479929305404441172282137652465525623475125774251933787341606019946260454409211951100296953739869524338334321277479669265829342661469792857004493008478979335650120878439439320633580570537206484300083879385026539759777695013316675020817307392852373059343370887827918802109085918267185257279017397576964174025865979375835583691529617800081949247410617636538559262564715091690048153041576818938699393065506033491720231722431486327412215237407256125620966525234774218779282279231476649577810202415537378987118003072894971905340028755706864331402127219779222053986187087185062847041980863986233579364840070503732276341592512338283196312719272596813895287231768935131338208001302903876601496815868096832992109640172999762211759717416594999131676486862413586789099510267155362048634905618168437563050561758760601975841186972390977246323174809168766557763353301031867076384309518095904132136770292647574233414689669983485746455431221941095712687201358895167033024296717729417316928567345866015334779349234842711791786690232473673852078439443984130451744167711211326795333766751097117726079593408666420409993546168444946859455508158581061938777783081567390965050264299087768529870574973507247033537543338451324142698366205537143044495718743372974859747852093191356632623497409982036601301844603014631642023970355560721402119009112620736162682403422465378755173856339019779874966506506560824346190334961802226777334912332110527439990462610635595207493295451424818008666497053690790612079347581996559297021597215149034416669341289320160684013301148885696966463304543340949278310750806403510652183555878866522213545233969212314922106304641748296590038446435907826187539206709413024674725771153174207108600137738157983167159308871491647526597066855541618652658075947598538276151478227586293455951404242057317150422549147097149477780279271560044655620892642064226206496664024876013385614017573954513257153687542530905605873807405133790078515050473946413858465025043953888409634117086327699899524275143814915735341355169313172348375640448638640998011562168317650300153807032700729455414261763289177807696454819941625891668085541703429073786511868241106058731034955273584565865626801716958591825351282898401106755646041930735634059782602304184482674113424865983040862649284410559111416970465849902399794575387699278297275209732197328810661394212416703602703261786245022102044479169302023144954587803333908018703946549500386907052322998223509775532321441684032514410955368829495748119928216306298085838084153223494614216600794365081164735318653441470490737502594790359441963965617105970754521056934834900364503459896580661609534594855256651230856939646015240780377023090436452496892439138889246545717000691088672920772466114441506393666431329400138876426538963114633253421378139371988527367157629147995286853318043081067462197610955759621907769113042244048269172154212446979428893634985416070886689515198355068488908550188961459891079258087060217565466769411476485305187790972730425585477407331519074212759434115512875256655759535781039808025856543366678399630688912582354323001099906500667491531973087918919243343300920021326404566036044114589053286275004563602825064971703878898695985482838673068047823891831617010934555714425885093747623384581160945023097939907249421643177671804588395584362515889221336685995948896795345687938825485094769255292423173150516813156699176719434056085428700459621010740309933429751679377154268382116067058287051608903501873310602976779655121508990666065504881191795720507465860668780183056245678111961851938594495637664781484739475411215298829970354051729443901617966535199382842305726341859920925119302277055576058262898135043979662002922973140025527995812885717527201178641323522075917887486578100407347873964612352235257613071121041499325440888706035534821918369933077995518432800153417226165815711959632003948845636079876695816081956865311494221117158952187488448978149515979786588125808623591042286236291166073213632422765449997264073707232818700055668002849290559653301527103334045595130166787395889451954035557604089337830149001970247782592012621510263255928934773603221126860716756675216606146668706549696641709484548216685721285392096443623840970240508080807792381266762504939993682301679079198847849888623251666031898908306295284345134375445278540853547658704661167423141129430726504561617162453849808096688538685416125331579059185804018191933798198045337398269234689665727491154913533962913407093450420260225340280615479705149853807058443368164894271395147474169496521195110358953330102621368189599841956529823174147085748230974553104842608638986752241302681153776420913406025519551180010932430650845743537450471158558056502642290233133299119026460061959792621542334073634577465495203122206837764106176927844082692898628997967121047169700990179237698770325206634825114025345006567135416177997650104321972919732590954282721146563588006270842723879150303283222999590498285361654245687363802054231034309602516869061178487145445627616026754656842640732447104848264370029302419362691461360849825934341142853357934140875631824358061451221930640499560446845597321898659188070734783483247360325733960335516897370771969059429573767084088711521090718365904043049738809489166384845966049687271412457680427746615376643610995501492078904425875756027413626566594412899855045407502624827679031118156867154048826039482789024124524933789730404993804344682466986103404803102822779713817079966294998815207759459429335537019043809028684015489563826312591957301078986035128118328544243063291298658205484510595333211376532730540905092128842186825349038115449068395035996120873206988489395397276906488881772398428347964128308758429730441873788147979344056513968288038431819181646725970798158439529477568563179295888496120354142218195907256242143928770545991384306557448977713413972425766070837250449835069096680889470902633837390674435005892891628562262181672366939107671095521957338533210780405504642377004054452821193455607593362257035476654722881767955563136138452244670153429840859361754362112674983279079819591410382449866292180626128093313525525595294901893104868902314712942285112691539700181079802177951255600732073769229576201702071456063013173641260142333621269658956643073278018736490740825691483901145023507561655711036121469858069976672401881895884621725719555739075342734523679158012537140838394206609404333095796824825082490065688500089590705123263529452057525730937148679507222952617319163035347464539449273074101677274439195261020518882683842241852468973475444472046250536426187947401242345120738022093674193153492322122322133726069383975495919281810286582301855751967272107012191618898886463555186840620721092149720009403600566847549139869165375332844941349566174344718697755792234005002511146207650051523277908577128259784021917063697389444079119078201807427893222535522028012550252688205589574894049212840459015829639856015091682772642750483657907238308006267840325606162660346334656090672950327983135644398282766782548243920938385655491472896327907181263706985358386024237251189253077291629718865846609643583106966710374329936167940665349495387460945384352569064828262498103475069797273312118312839457639523332238614887197700397392298852419257506455934851567634144055008309829939412480511819003827027157950629894611100364250578706815845859897167638398868747722493404478166381023541210387516720308823223450584153901047371724051915209547565930407060825594935447411115626700742932340101459018544593238806873416612552094008396913870209497241629084763134587468586660087430135044392705870035294109871317777183709878697501408905090838186012914485136704784140767315695163790341124662801020898119486158873710633095480500296325784113353215773784125908684593835832332182695499399977029809443308548586576130456184616010444659626168065275425753288482572196742262902780645927813319411067204991799299346863376019622367220231694575551142121765569706284054147503418219311028400014766922043171911435542933291435721952867501254819395251612286932493636021835534313060938781642948672799955918052226589172722411094806515780977323586912188034687690278882947803161083121981823134004293109504559630327469794313173970010515323284399059287026048479342563966759040242552741117616370884810573977825929756973068578643556267899080991961785750397936178374345683454903483177538480688898482058609091882444395968459149473645037117315929837812320318015079800563501737875848820937799141574310617475625536803390320492204270439707675906709860314092017216194915834119957484062203518777078993848265475867958382234297730853422497356490660301229883544106388296218556014590475714135601915141199606839244555419867311948217027721172212232146972372639480014392161012076281617934659950772677907096363735725316146280538783220257282150525974464506378665080498473241639439325400992935640924950950525748867218392939089738382674181552974646204624215548104345025208587422448198263590664799899123527523546737421480550443957207214206307051462493352948708985897304489267942969236828017466933733405103217834863670329072729841122520355072704445802786191824118565033560495384341494401088485392652500767758413618683188265717707364075834074881017869407680386341147173195459656378881532048135714753402397250987633441143482358293882392130076660000765250298167243997607817801712084025404195866535907767314354427926064837118331638802074830625882572947110838106750267995737124187428742351895555369422905573574655574870439814173268006156540438002580856212052932719051973553764758965891510278289155566698045413021460299598557405062845158277916002840187151377500813947276177302469828131808648222539382447319444906385324649464128268308639186041190460929507900294619170099363144011896524349588659827742185793562786832157995207204525579613447627170267308429549965073436291265466420023971668582891240167929538955463775338474479916536824273324583862957963224036710933184278260431562681044453923930843231372379545755166018489832802644260556616456476616352401520306651744636393435305422626676055557948909367056853634442665409544679373531705049889465589228750681680107062955725910729452912577175742102369716761068244420771292307851164305958094618979619389722801526920441336148470083295048736366462144808747527414379599910511356858461242371993664017020623603600169899762285514109382457783411424800192226467612303343966359771651600195745856567983101526315018113626419064502560592155682361530019314769705367398075519873781871524001348610993849814593627989381633099152495605200094365348291898827989629963329787961545960450597044160409733351429927950045416285026654218393974341812094052763551423718630528400823331330928169507401079029579009668055122461059852278860474611710247940690615892960483442222052181947324322324036639276378115733304689423480765226053385478237512913703503249770297698358777076643090702322167040925136475571658503628016421984942655520358496000521953275894916341000210447595922570734511713031423442332078972643579402467661563637638751456919118868827334880729972477781701182696233510607789484344147306866748091683324409010616787256827291904454253977456313069816645607237439782011654297763253297770237183270986589679630987967426183659142336434439077429889117811788988212772034779868874822802914711613401866484205300480764008480864823938059534998589315500668743640762943087951749507183628876414050195725863757194237491030155982436505839876315087405306503225959934268881061115162298394240057146794266659731930207656994547543140374771786619269904393977522693122041228077786721091076690285763752522929176885804476684032378051609653365702262748760105783975189208173639089123276868830250262713201518633169751154392941992966044956892662930308910390069667058261532038041541774149279734631932539280644438608545695738352296499967263472606060797019591274969217856826721172299640614610410372950287735627351955545894732635865432084263328662206629234295244744772829832699747167885938680507574897123389579795842668274216401431088534424949995052310129958460171241572192390244689165784247684646761913088991306182544560756729845983375264154365228241049447290358723250787033728615759940048864803900343229274466345407635699398428181017608158117705953102253285999277953949598793922261967887426098863777276184241446535526542018149391763273859226234990216486925011820463864165029018001272828936188173891082603220371983768855553887946752970295664901317325398022052876296758921840564267175245287664885303361410045785526697352846385105643295148437714811961333961066946490891853925736851573885992786574506478917426418683066375042740045266980250290664829486644113104248588000901164138584174508339009885559185813613187946221078904458755175722726969961757144550376928982578925004644475747652987472089109297833383029911563130780040162177246719902374867916044865451391596351940027456343137744937049239316554037064801701523441324437410929872907832413421971309603345713808233123337352474782531453150782455081079771767487244878542643202322916388811857054247247519265935406282573847321236976924123446933141300653116211160594886231483414037601664777845654617486056448505287441279176918884861147538306154074247436182731764288930657998286652852186383891729820491461943552455338747371836239211180911575053088501242464052255744228629445518728924148975469968696412111438192260558071050373239252701248994914228734804002618667939229234716714731310219165177780581762579141857719530842391853605676988479933214938749126938676879932617707622543511184473829262261513760377106577042432480491352932738790031598472339345591860221788624754187373586735046413982961375474673195182155248457533190641224554236112523656362971962136445751807386606068993559631334433917811808374826101070420264948479316184491053686851871841375593530543788352826354081823719965631775408196640315936390860657129724682838552666355045191271438560864721006419160978126549373628365280032260273119499743299591707825621024129781078062148143963188999063156363753773611003796145060113789546102760607478066925933982932196248212680731578534238824307938764930625199281442488682646267356973791711028646320461907673596453906381119165154168848945753977301167440995402056421153508450196470088510446814304951964506181650775235166942370323375487581605064393195499096097745037773666305935922421064935934946095039438905433642524091962292463785392911031279944282665016149603991949293560889930778925226611087495081519985623092376821561897494275185835417770324783152562233549733108266616708579479839663993867055040751974002440589978097409218899420639697158657149677850576221778318583631789700166635129291154547612262261845005568023483146673569760304354550865963580447587005381973616183936197251446173600238104376861428737647180937070537512585564437683738563124363637967028277516469915643882959005528045745087509531896745654064835078270244443130101642072192560729902131820226689930040230620380737407678196179269391242834284289362495472939809010041770458485693993076599274143478462662540101476982963168885464533605719882140728931141516603387605795542380288354787019410092908750763787901182245673643557653893640887300621476032231203142640394509592678006169174038715548530803154040166258315333747563654138783036931822333510870532500552827618697219386208520079465934233013124367799007701769222914904116123735738354119727751532778500754904617752712698172654947970281161001698897186165352568425196832368793699045510991560511561627568174045642830671797124797245312464199104611719900065336943418001853281640128381157814212008953200578370673387089391179006956080767151371978024707470279389670574732466809224961932659720393734928544109300716558137400173709482863211122254644318255935443735404416021907800867113609490045311276375144375679570184922719091684803854186207152866030361084108630286872685308572847179555159644295218646898817002950635453210973683308934044737235843826308464728404137869412417711829330551794131784053998574819679591590492785869685176802949054438742678838707023396500501309470510968285116378330370070948970223831813336408258486282804075994625913765245232280475776861613813555088031567763641379893184699680547342854656357969399915045034668760013115288209993125080172480172186463964543540259122752729663890021645312055456849087154555381714902285450004038526777771497926761329824264840575323188519172145676536909767854394275418824413533444249020965819935880296530947680691923668535445140871912619673386008812586652847420311285295567692785310568293842365751382380562541482178711221485988996798115609148462858514963606985401752889052168449859062800406992002144273591793904342808606743807752895299412067026463964230180585787798532037539902703639936399595874963633835960966308802711567015905864491660717711135968682774750584888311011830526954436479566238533391876574908116184386351551184703885631994094965293181292606686169132012891089955651982338075803188625487110871960406415017840512187774485096563674008324972762172503608429551777589352163370733937374753519171662998391014182334170973206531646228104147306779029702597700960463597420268352479026470200373993160487515926081147064405657620030416114872614802351474560318539940079839767258371253677558587593800462797587295440108399127738409325394272655066184575433349684208236756198487682193680700009107823247468313992145057672342767490243320682800024798335206119897935957042446009135901661190372112323856489181387240004593146112049590535703184680239708043236008210883117618260546631189481678526700298294399570827431224576016874685546852014400503409041665041456196544776442930340859753082312210431968894211152631639361693810866117472846736956834777852261744497197877199009918797648993082359926965224220688124607289495492307132721878522831830565593368257724668437771044149414694896861151722369940755929439821697905404915256429049325605330186416018898854071641422333763419789232667987744090272045815416338727149449809253726215356316562403080842627730332894749768502911628396496304932549446071129605228146910024522947386222569348032650395531376407181785558702853829040187321205902047328459625615040586774293401430981484407386098360233188501495157042475445485354135803379714739414789953420502496335459397859995168875481563853384886748964737871765045987248625537138846078104441120148236150688083934766128813702966520164313658797789441189509299164890947453707483384286767023402963308873781611515970840082587623150472100254294563308015349788419539918349404127788868690910063273256999218213696959718336745767768799584371124024812743692124616220780408472137153681311726922626597948074592443889355726203408928770834709484185206401663687853212743959343974605402149166290482535358608096531348384289725510576656049684487922721257066347865856786451239532357796902919634385769810309441946495345303944530025074632908332431896954358443727781857571866030660067439187184990796537164926301772471902811626060366450705435668855293977420002070004044572229067518294708267352571339519027507387785141390090762309675064350189463239730097992752173862202221923459186745232340142303726925550194405557134488185288566897133604664459155375610292290422877761535435359110814988214512901787841144340506641909087679714279633046864044497384552133957550496047313971827877431336731069868371934816583929805451541930681015095534802273918388221170375758071561210576689218403870337314477073293914504591748758295840247457523534528369359000844192316071182120161470179481210462537883998321150103035151889407981795558966926424151239481762261928229212023851853208141084389215812501704552580525374892279026747081531159823172952812506605955464483151410139351678471439585143180155862351840484665552642623699519042098287151202273741374015310904304623415290908219984233501274062340360111850522112140314373491577578179373899158441436107001993383493586486082396734846462181736566085066476941948969186603433478077493347650289747907598119547380151328159961286953130755446292747388541241575961652448987710440089050517735670383260170357144975766223851182762044052915081144657563890267259225674833700704875703673758112318184367749777968666983215380896351261343330082266832826512479329197565114602342906699225479348964137044767030652742058262210583507729956690770262646402500702312369424575640959872204846170626225400465557067426303626440914756588618058136739614449110614380708908142840018233924036263886600280813834658097409667828986983623948783118617546002117617647991769953681552516014717239539432822223246933985855536652931245432384375030264285649672876698136935965493079801215789220442961122302878120399076104750825829109796108502522799382871956611170565558471560113604885616198227550991851152670308529514160865902556623987050971728121620228505177474335210906048062899501663202344722482952426072321924574080530982522402069040731695011278479789548538405297375560834510629765132181999867065389456796099727346539312226811669168913865616332141101364491751673569787657659663037293415282626765291815931204879031007361047769562790834684939235400436002441999165996994402945542109083568709149943659963287793768139607721469770934877622529697762281010146674053146284079710442756990933123309250695051177980833018423354219992308166560939564071347645630975636764360225169402638555162561460824109440668014530892017626896232765011116144405063602149599313110680620871978955947798304483982008269442272921505166603920551270455117195016097778139054609198065274746070607633712184659517787182176477658051594377234366159648506220902827183053054394613338056025073769606717722627079158322257039011639271184743584107891817959903856956422342888155678147236236407773174085969468420891178012378785356685179294752672561629070196110734819797150095878274484014078769564834810236954610134556851833933888235245667953846743108251393012903946890350472992593053957157461493000667850445639302529031132755057776056191420796218935854944143011393408793277101174093586911237088936489419694486441638639282555044408965184401356347926513190003261418855487735366177148003959203984031524632242577758332505756690885875081986377367045423282335947430651320412631566578261093196038660944772926626101544529161884704595076498254381264009160281353668856991827534746208442113222097039389767895275927127092116437515710633440977088240659016703185433640993015556001670828163506582988000540523364238762292912008430084788878109599822130585874823340678167568940492458896773048406294734309230750105743507945027037690018499209455383132363598007962156524055265190204212408486497289663401288284678033475269146649895970182882930583273599700793350321645237218560463178736081944090791263070211064033098562588869999403759277958482497193814258251822039385249529887739164325974728753403422945926455634663343937676491065681195528190289665564400983883046403905772863127729041537621797156684178583567165853103330792674022165746668326983029323680726307263490341305136219764350465353657109587284680035491243321050740068988669745269139779084448916720260783914941297624097722374590716354776854472821476090068406222414858625792240551863371662986941678519215737831627159319114625733630017123137682380494000784508835306461797483167694013204546337563997780654128359505257614036642915084267886306993999867998471419146476401284001741475241833596488235941521113160644325189089862893033743151068814116211609365387953068090183040187516527585212083013374827477127824506349999407718694396624153609053254212131996318479800900480724395265213321842710816985770014554652132122180925823671253392984888121003225663638430662018282814633545153163577090197174017846209882802462769046560693055757567429286583805311593651078822791135353329315691000694804798434290003067407423878169494690569846940915107685802883840183589032848706888589349358045178505573043496164513328528112988767103583656043385653381009913196523417715328156719024673560102084746704164971435115462874109146215235580570763086448785544407147772655494478849192426529431227727228821365382681070342179853784428216942366320193179646221864706231103374821950557598892705504461569569662199220229583611124527747973122515745724545343283950915211178970346904340744556445525230466741395207649290183928534997513890744417011078839222504130467717503882729496171070489482367497775909021574368094011606519149933630862983302734624036477269494555759243592525907455917677289548866707185219660431576635551510735110800295040848750668235001729540442477033592159704311462556427241542344384000764613836417069942746781092178475028982805863551083279767325156375692032523856011531350611052500926459441711373686286026091771827648597086985181399934087110954172736421265582225062005657772652985905119551961952924515877513671820082355276039941349071455126925142040444982445691033234309389458649642886012618138250477850383617248272099248826308226444581932043138606642092637865520500469383204890169960432944943930445493558585305943727807614123712358173015117761768845217086216010181087459644121523970696464490476053738551798431374623129756974963610127557437287801853886780456393618662778939924937091266496916357599786090585082433312068353966021267034813625890814454830891730566028163578405520041278001975311634572391966549904562046356845964109200426884096424296022007039938239463713792323800865186207310420729806082729150999021106784154958368780329929130965724705217004306118791963002775408143704697740933559466321386917666164420789411837047333436774504944276700548170034714021049242074791237022017451873539841381808303875832033650617727511258122076853453737772535519409574300171393171596441242679081321089875660933479946184628768205602605700849394349728259314507416437846874245659414129461594018226794464036365227723200014587715963969342107097870321908147190736448127020199124846925500093703862915271616621684741553190034385832706697152513207852809393470147224879278594930633082042429982691555153259058004553079505194640603433500257445261240955060408221826642681237726747098963888647527751073957906225071965328978510128515703419757036082937105123742962431035750655675173047420952105725306025316680661614849783970718834724292465769436399600268397216971764024600815130872418611976387824689432429939132300405262922156686390727340797437866195563643509160642445122472248715500699032954703568714739502454270572655499799712875034266915589828955018718533855350157450431367004044387149001415640288506871812201369440173932438702582093726828082955196277041250871823524383525598660780614800264893906211513929635068698727410827924954758883005487868751469844009433770436256012775437770419944751104092491046524511571548796657686704738385230387367213844925017919936096337173913660521821226351266244608837214873833887498160681979100597765454919415489039834501735961158469393656807456765611369664902952233171185698533446291669567519572345260206510987302090220194889366664697143299530416549740609074393492018351561127474049464833177165788240539982435529421546761165245090906678883356750525171719518595410279592073127137382115929375323278825756858814588129682562458335335049105930928389445252743850223099284240506722675056261995239567643260320231617884420288166274064143293126182934067728737820759675964612138755876437513629223584943263670907334523537685492645911501139213095919689477847047145422480771895077552314770294244690866725373147115815433405519801636324578479044478854774442906927492563734703770396994439036133105638153071536603306874531159354848477258508190500494916255211029133548598157976347513360332489093014411339069252382051358291167610259702469287330512709467290546327230614739683888091970802965939047206684721241438713910709804993217936021900616397844726091088709092154139754983061308055078977585799618976223316500783684551337746670629624996056990765732379244411022349355414747461323367060554936838727607133829478307787949691664905609742341754812088923642997875699571141581763501030961137428448299630131215926840693668865469168222046053881772272871937421648991479496777424122308464533944268409249961833184981260402530171562542224473187845866437050520550993523269333080619088654442583961099287352432207635709862901412732850413717756258523448110816034422438240967751374178885820984221790579525425518149289749622114269235380577636022233044887496898290110913474661540558606183224859046572455086146666853253872960304241362425875574789659238311680267957259686486936841866912274367098117924123568290523488276299135003714495205303141695454836722521053096585646450373871064166888439555466689586751170457438943010647461545548642042347924914922986707767148002716368662331805062827714207763786615260994989831081513625450551355278302514815884740927575266197888477381277440821595578056523316383735708444777258599602125443224879075899803698051774926226207859384569281187096746849836480488808681533968669227333743850321008422651784417391972565004696926789849785620751049033109707298856666704635562849119636551152158489598085408842831856971276221873822295366086246990982399650011148242008725256462483051672062802279800141161508515929882059051876358651077571462711661212402435749381438257513474991540182657506953570415039764284362845455198307855007306867655650436000336610124996390349683402239074850404544236268730482698769257991903835408333838219884926190061798848221928228601096236354781219569870711434116233759810819015496381100911181997716468935491763271326538915075410222834564542199381564457137030106165428042454667150638783234574592423947161090158807268430886888885406964153900479537529424764614668057682379015994266609379963892687347689530299137019750654009047698172597687488806548427385274310051336596079414217600059930141672373289649162052618568090026674618567663114573231717729014832606447504924283366876047826475297488361358512055116520188717002180350104466081020142828976437529976367825751188714035610162423438895954820754603415755742191805560722632353722942715975565647166450773663459754867462486313961293898529780794903956801064594311731704447830316381983897834506759478586917724150225720060321671561233236674237278142568110362606112442123060953351641735464137211340286462430261771959325715190729924375291261862586080515840759099115701457170675095435853698848857842459419224876306615089850545502562205399610353029008589556168200258729655155569926676263521029925503605909672837252428009084294785571266461844192788408887876926367255354130227411664237969883929103377731518500043960127443417513448860218915495539633906045454780919504415734728389837302958206421997817594894290488682558274862721215913707170330725435089321094050393850900878430889542161929103401104519612957233525517751477610138458729370562421576686694880781829576965201787644793002518805633786197164061945016373863921222852244562704615452341517632881295667125873035780825183328722698278397068017668694405985434880562210802522763792086836308113934619598477497233733546660697250516883386134172795631865754457612575579251660786438422906964375216601940388423794400420641956574674526425370542540165821132930404141341680920893035048745053430401671208933284903845971022855315362605034422721695712206957765290069196381903954430832738155994130724718400414686109806035080281996367805906006162872933259725507672311312426950230640403402292435260857618135295409365797261833273135665068688936186042102634122418003284444798202985351147032616229213001711002372946338232891279139326565270943013092822119097366449221797224214771466987156277515080820028845412026411327719823121929122040820740306590380430947145507955172982981871566733290756548935579745436436870432237947569849421703348510790625759166797032942068471165461913834964803104998902183048401986506575176925983080647086687314323393834150365438398400830911420336216235647962085361323932791622668479379283518834167522981930076389020708609850725365666587829538588870841303497631127678820040588644320035923386013887502897938695168299611716686700627132658171671356044427317984618303108862993167446636026238559063658362193904600139800698259695956593575220814210846391396980641780855008830837639047076914451090802566837240874879316634297301667719208176019112767817565901281191159682079695686884373899322729369826959672801005767155253680420239886239063778582127916954175665225070209375861818271249805335076464571798467748661223140851357367010289348538476211637058690299328548111656072807243223494946512476579391681027784805015340627151664035723067527043202483324091871156860530785972474387973161058399880070512542418734000860800845922944635764707577035956516956971870366658766152303749159450203799239176110818484336772025159152846421975294108024236424613078197334728589927679528599462901712088519116710023693455018676040515280765847765710480067194407972029943063886382211677111407345566057978625948435950553921083700773924279049482928402317574418271361482910294403650433378759627449641602640572111140553010022531964806970934750220318436580537622913672675176885789678912933664030847457477390354562918833312782081468842934784426156939972734613157564742634095767565304298296797998267330726251012053270058811199842379915963764034902561808084535593129315106272145285957112012555275952180594196959782409222692714539219178080046716088732239224883162247459831760716571735096213405832824917240740024551364478828276486535668286861995138537623031704831003467056058725542349965172193686605565456886571846607779395041743338507636932283000203576570185131653395398193796841904349596682331087589891434933745813739357226641469903747376257769368544430035709368926704968372142852949032364521081590970170326499361436204448317807559515449623890283592768615025921723731368205570396800290238990740254527358339709540693737641198021513087007156812051694620438850149927845085785229640042764555649471630751542802949210923336849952302273133288957403424793328208545058346141076954175847602798792316918305188685779024176098239146375947637569937121829761770794914580826384780248643995253402194519167104666184640718819711546485956866045023378992921655386132556421445611897280326514135620927869526170340154755692264597076395279694780085977050005391190498791178449802762588142700660059509445553477042652787834343903801784134063862423967038396292009956353848069847315755192214764464948266652298022594195623371749628974933684399622712252818197597100963350816851350998835290803382644876653548095753463748818300517779901763408758607039170788237942830193509138945340305272604590919622695825809604438792102650639244174743833550873269163280630661180143456115817042701167929962728728442320428780410343855269651726044750406124581115525328312166187958818864947162326426913998416053049721548713793773783626438369976090399225996797190161538175920924654377756537217168007591833805740468708461355067042077140353721825614003762229687137379016004373102084873469276367124998133596316751620945642622105837015521837378833999930842254947125972495715223590565230787363605967943241599849646540641772920291947109877044767878324571406510956954802052766984451440757180823695622695545075680394047976403901496170850296353082543247822243048233991982690748289020430260950840904686097493376821407328233324727826839770996574599683728680442594715060293414000526354169696886853720104752734217517372733193007031344910070261466778446070530435831112133952396659546008903472815774404770325082282780589608717439071752415683517410070670160809253484661321614104905892735886462242418967607943936265368759248584794167529697762361819864379983804851016440244509000648404085876774887534978101656724079730258094222167628037380528959534621995125402646492532930725523445177295773900609878159068338715304735997275550156476896345108793623549320336153067322985154095377251128047672475562800573178016478834566258571444963601534356944265602466230665990523190833861268839512893941293996390838636369006467698192223431435298556468103023610739049826514332666781111647792757612640667975612052093760324189504594683443647578701411428015934451316051767656919259404995917033624482961206170533070554411477097912169594494844426874569534511587632046148479648524506474843337944339073172537001962044969918359666992860616322031879902900645954048911929638691333353203325530898519236319951137008460586408849696184801561901605125091233610259708637596174194315081104336988847724893237622031174384023169358099946232936244017209072913451393165850064345324593175803268990358207815432354774223967673047446274824583583832405456795241134898035141172328663223370214157462351339289617591828203344882114071400914069666676668833634963077314749388637751240990381071784340435417259746498741381185730014710902163501491676154185951804798560053889798305058793452229719282894120400422628944612179793355813895880113133727292236062205844406858756647320692198976307031866455710331596569252544617792532072571775427478220943822042222640560888102610290195953382174832808860193831819687934638058437859293335312004601946298197661483415401134070284392709767471022330822504411133116631451060777693355097864935841951446364329553701908113876194254950408243715994575824399167459828790669033189320685256715737723303851505075843000645136160401812495431580789012995549099315693703233602350367273147537470954284465179182011650648208002975536063623336713663691674809670437038376806346962472443188298739497165439571560316393659743683096674793921279862934823853625408989378370771028711271905189166188151950596018938369206650171117521553828888080579369393592269883012904790000715758773894078815207996704548782808446337644634459130383527782850959691869452695764781033565763504007143920498945593804842523863070102239915054878702508423216465893697300785091801197008386878316252264374043473124773420912574036618850442785460398506363701546520968640791514960309456648610733539819163519956838345370361670611220812017881021083499173442680530781090327134933091862879066759968500041083776798996888165318278864331284732238893357854571946481498546298416753338354868835845738421074362446041650116948507559755982032271427505877256806086530629899362202032501004952473204021689764226373767304220364607955051315084185376075753883431224981327840317267563736818535017519306602167628417590093900811667917422155447355734294964418763841379972486832137664576998158487495813472046530799508633487902369954089951739777231799957652929773068839780427525061073236005866153118013968905678606263266784200539706624934776906001857027942760390183020457974848243695743138888968521613991170242115739589234920527430448456746049231757649451921625208016121900810928286578912770691302320066591308908979983347349890330575809036793874368069949565249849651807606980283532649410069723679259994765634759805892896948056369095441343423546424329113631557448233964689324783765403854308413826252692340927685070039021904955929582989170707254465941474494039596767146356931626847087197972022089215082675215837459248204120309393983979152465227487589730665132947682555245967107969343829364762215578376780709504621792140694944559585660692654616550355324184261038783009942219591107204239217224521979762465925562954357520956694287207125784403602518347616600124714722834575353223839311340081241099975624191791569373907932565404890335881547646696697799453006762834828308280666706622632292372781452299514330181636753987096675616080032407751045203806469319447146848241301435034836416463928148242797311600604014705279305090902534696439113636139161172368913880375021575133432021619911972040422401152720440526961900877038284905595283909784015113489259979926760261354319882892245017598541181688950037206604284512785013000090045383893042502743757389785888928138823990114414353294785684343315195521638600855920058076339811351630970979712624639726646898084042554225775799211674960113824087044071971092562379247818876279771486723132194822807459560907788372871082961423661332249940501297408493613467465009523701512622217348764591258108115098791917646039690889863918560562953778409775610908192052908570501875087500348394120811522914575955977770306592386888505196633488598798311213740651583931681092066653894977463911988188621746690161482691951626084015871700730804807510571373938019441568740069776770629959946756130726969586481126592693592122276851049849806821481973431761099328248404891072911442189332105439953983016074945048531348619839283976179747219067536478173790948755350738463733451146616182010652398604716570602269327519237008189540604097102044728829061746651903029388190392092456996726378453993176841151074155952217791063304898502666602236830210058201143918041039122809005906033784135837213621463506959052380709385725886854236191861904059416935080160187509242378901520133793621205774477043194625241003732035341315920422844778741969112041641629589133867927843646690086042495228701677784158519439225361960245170179528254661444362185453873840513436787386200458956094444212647643016279981833506498054190271502868357828107127831675602160763852885810558532576436938033471765108103662519454700984004583162797851737990815882994740555698799535803795082466916361409666841092243992526702650790067619273865460172475452318942537703287084622939115220073293688302917942047437396160523034892611001794615528129325559089795381473665430274384795932742367205255886540782751875696259528762670973239580410744445692886070264551036458975449844629340525841726805442723349542308786282119549614198431217230624959068102839025128716917876113761737398167021497410688105631916750162211866885731113382180484879700599193010284120294006890256697663846016531032431392015849619124639634461440679534860144317075693341050643972077500112760565678289203432435897911787545476110429858010649017650340221318129904490641707523431193331113918776654969511050064636337239441361998222890213362690134407364211477376937438886501399371090489587252680559508441830328215423571722520489187340592842297650785684275095914752389271158982245642672805669088861730431158363439922625238546801392688079289397308484423739373431526171798307155616817197148797461420271009836459524627281022962986425524534073257219567849067361915845275682171229346030750572271466630481832157434513174194620809060421693750555700228024754071200618337643733413070355397588699036822886180780435073721712502261178565579302149762340990894822885314107377670635915878997531333042133444481790667518596508355849541075897039514089278445791539597747472578484473681872142942385019682389918800421181342982236761908719967699810468606148990495354198926106994995870639794471239714591736909922106118172278830743866413289076297965061735665840104255707662491063127672921038655022591383150221961319734033312824018992824028652848621193294293630553924772542038486100529900172153182847948502280345788081171619739226695064681153648487275871943182335087053820462490496330348895190472261868977756312242709046135314606198937174315279887466596225107833695696789280230205124821601020662241216460282752596528680626352251188444837837116462811162415239350028230579025312602039177879570547605695989807565104950270750297666780477391875490229420966155903586017128510260690156970457591017470537098028368981199771331721190544069672056468762106131094377514396023089750990980143377458330297850400031433333764668269034257528269426103064087993007889980328524255036378536949359307095281908612798519750062971758348268326312798729181717955481651994460918757400723931394316446298650949540307332666909273260546573782381589769782041243259686491358154433641522480573219661564261633650578619319187585116332505875601480872819528034453589081212079847886336829927828338464011258559447866364047895860811929840760003440009698168469251139003481366728559178960028668477391127280489757305120587693510365938090138268072039227589110133185219536093818699503081859804841935836413760714150351471130079142398863875427349134257693653735356334016833016931662000425956279815138860949176732000960119522140738661481868624743293369556085914651423529073769203761727108579856515345460374372382202462334265738651596794398306107677453941289709146564742280732894495526972804014192472670326606000126175502483226003255112601001007713667290986798600835945142017197523076477631431716358651158614823286317988501058030234317368786713615422276603106310047145131545042777425898162517123596814216515896997480116252698741696731653355711555673506443653800064958125720515189047378759936335101590251083765877522347872375796963343040733864913751583368077031185142222487288005690960918849952278305051093071297622003176930415810025550498846377347714330833466084942816790609010842291153668007319786906179544134489719545975562713386387795598203359165880345011678214625741595209689025794641219142858928349551166861028692861866501966229125000925134830825244744030166416651945975117313364331680407567096885810579430670268491515116347397477948297998024633594040032571050097236769229417344228522827662710341556756850781247253431664333809229260611825794993914149344783494216568612292954528047557121829337192130253911529057769309355300690495171348559980050488614565294383486379942540365558415840496912244623942575564513199671445818665854802717703572803356651190069379469387567020181076518492917166989234115011062757149510932402265149124731938120906799549195662325691511316885503255551080591659231183933246107021805975617372301158608511591730919263421665550620267772563733998892559868096448057512783104753001617983820854978088093558404855631936820039829605957547712618656767691760910767076547649202532971790363098315798659428622028227382357475799428908541113489043077217004841940605907255711739456495078037687192855620531753863675735606945001922782546038512822166367595218403716499823045442622201810458211729238856436726211856053750645747987308146097035825947766260287108384723240145647673084325451040991934458591581619376154336131563442778033131983720605419625279226208931029195812678572598586321476407711412216660742032684036891207149886944866940848904203712182306552361772361867752385348862274585086537272868879623725103130281318527336825963124122220260378129639592726285410985193686973039093130537355720679203833265765831045865593923491566278337395687169268857580814859097719502762300661378594027955138753506814921138514065026635506097575696176255311026440607430898747498621297075435138429747837305619594974669676249875571916963375210831250529946510108366912479440388262486672278093482609621803168356326635114273495026404386497923727115416905851716010098947995158262407067106332987802753180291656665488288886795231535768872490001766025141341328936574520151342619952374101892784413702458678323807102269989960791459619820472895295944884686056472785593782926354249363609561408052881979307102568845553585926301434457796461258379306938520113777670988255574556468859560744209180892842938485384427633666433877936714039723148435222925741685371888292959224643688608050452880827052618589995994246342654527859266078104538550941371949041615637684478501422623913761798597777560230259799080452695007591949013050073005352959547368781378035389044929524941899612753254424487579473125762481926823398434532685232637361377032703214274608880710926458859476653976302911576183633884286919568246097652426527397634810554311227549693873607667185819110972993406109904782550836166211142546891167008634747742542207463736347558593475528561625004988287356633443535796591359861265074286926834685645791716827182713296530983901658176639058222870283681999597797557346188104198985848492542975169547589713695912584474875177074149302398462610595529763395239752989822912092864428848469053904703000281568234676222459805368998417585595898305193224141276551186180041893127618863633755061330471456855178511746508188124104331039687222839063605135976161561078468017627785217949124730849262060024624836961048664482655483944200005621953090997197417823540146830373847464394637493483542837665474435120338567238365039365741866047718630627427267592667194561296881421253288851152241134905970678245978524734792115255597729169981389835963532363605569701620722383669883477557570873495678406570698437751782882009859120565889913999789404532046654531516432576540030955663364482869352570425668366764220167407326862289402596219997311661887312565645124500882526349221706716993497874517698089197889428598141155834632189913404000980544004418925739326464368651921458917426010605357618875828189027588640089902585004543564014174534535590708029928945957063873585133818918368868280890557054177978311952965926509630723429675772168592694019529239822302236423611567865157270871932350380141132718889778843129049722162483800335263598677170717125577204703906423270177860990431633791472512123274731158951901340132560639860526682979140513758414471500065902878137097577964566032223155169666528577300358656249335651519898833562198310737236757291194108941540042967788334180359067031272126594202003411588783751107700543034403105995122447713915995214004230862538946799114625686383150279600917670232834390761624392862359935584909117957345666096095288052409658580535739959625764660362947290576812291533643252533274761333272025184458924680342027555702808186865124891030093634719766468856287458686453821938267215166393869409503799319071397589297250473643168128065347051688198249802944484577629229320118931468642505035618910392350791207038180187885535267929278783524593526943126584892561877232038423790181413232040566055626922241598650328293926047463499396150914237245773479781314699164549812673787505696807831996624256789096726410704397422760142205712345001628650975234131995630755606923516834506170926232282405026667721157182924226780626997243234999248932027222507028103236782927832305518474786632944621446502347080538681994521178379265254027960633957553622584215311473254194773311630231203932360669633099584801537914191088773513907199833694653340346975669662714710299760958468170231860775514269321505634396877956310530103558504786817015444470557023617521868898171613769692794533403009434423488056707816461822372809717890895011020340365539713794008449476950843914779011891223057397650341529013085417307008205998878180477162806505639909021355320272659544152263142798813403538599857027715172859740493915917949848549194959323197948173621961041143008030110883939174485254313094038954435771302656278771026134048829003552317488144855446758995502646790446042727487561395675661546254279464687016142165284452996865292248396383244356705854366959488527547966700902397169794639250010870944273609441527091522375965755415408615484114365663596517483983772349508206404030400666597284359449698442152470961848463920222903628082127119512578517911843748500844648019597907766308501501850911573958379294053695011574019471134233670501839397511337161959148415723748225507610931132642401289453787974618435388282417475881016823377980985759316692104730946796926625036152089677790350903991990637853496191622989057032536248317082547648629005131008289961554966082783339445880888474069609108701104570783409021034945845198444144292415950548751909173575745875016216318943704031245295210412123637686885351873545522743969339543105238322231081657183938667553512757411035880777400367788043340541826570739984311773844352847367197634168198987467188520910915163799865694736403034716049371579221864747939717909100374085597634880302839010322434377501117983320904337370203768289758470515188246061572188607873789389903390214337115980020085043959600783912103704948975730276706227069177539289177931933996067703012872286383335263820747994929649629301145078475447133609642053505525664236224789192624567210740909373882828794552434762974487428671164746666884406640140248714360648375564357277412115402187631394137655119218804612509405903640561531655669922632072817709800367980502446881505931652508349927211563369465711740338570463063563615834151501475948724288811111429978420108334047448834011296176904727888043949230355220379973271359535032597762950277888961448460586829357579218989184527272475242442373335294812056567316251051581811508704397888450648934643489931371850576140055749289837174635789311590939317179732072001611030878857426528773209227214322679826073570885479765642604202872821263329423571942971680385643782325348750205498990896905968076702360501806217929111970267893448307343059211273513683345243752802532720795246795987731770021044038675085458195200758772731309085907963704665991500041350075441784576742253499779654051021395999199636375331429300702964935410741243295965761501882301242855978298483063824176403095823840403565648453707003235320860910757833418992796708608022843144786251476211644030080175499108108753161549168716909699868212200712072124869863490428139551715759863217793426194860632343402494456383511424881202238593307006288501048418770281159675153538863680213916862746337051219955448564786813148908460660243096493792847026628036272758434348399361567787429523211672862677538121758724026809233551991242414942527661343280313662224264902014907503951524081808217492063048059159370214683787200137824849265806710682117500409153858047598770455084757613990998822495936709137777697358130566223074626927133342043690127039389982106082027107411838473944116603272734107294045458582512693914973335848310070264756428832019106314330628115531557540214877282982570425636495869982271701570258421355177182377650107465524038644941638130990346482291556938562018255151045516593981391549790810870244024942086709272124149237345216142099659253781590561161161954258623576869970921849145665975656048986770385301768677627434252240642677320368151481515635875889119138392187533851012759441613398266151515579935029687177998990372452157366032866196973831650583766190627114247445317751241345147229850952361919545207307594005215036033722791545473284363217481524668774157903129369649689237389900798300020970076759096065177845204722544766745825162544032688914407010716691732003175134167355560956949505572977176521579669974588553030727642430276649536722997876708033199876804587270720275150662736327593262607788787460433882063373238517111669351712193592956257294404105495341159087514215541801110131447787038427342876174122223121274275388449649000101104867528252889895606484417753734324157140243411199053002786200506388323268517784892688903018020892739599622788968244409963763577184392903224829210195822422338886737137398613528260012383992100322160719154607767200255181481058740466237605858033891850909491044535875072166619169290869055753224056481540465634049328122986119439439795563513637976007468185474983175168954039160269639622983266640136141910340458422630491359165328840038347508945925596745416267415143741183916741842771347052281359180036801630494498919734229906291925417822207154886628638495331079485661000458592905652924514243073101005376368308853747861127691234874147574479659343914523031960628719871651650969022125846448973251043233828151724439448342068788791361291098504206280524331654083181123147499053692394400482572369971145435259703049378261525843575323222920314140297588729656054314209531828865585267559974832005693462025441128841946453646714162858481839753042256748562832570535959063479425645660656752841205033911893480731910750936910209167348904321780674211220147313925679138425632543139542985547840519703953886347522211274021062506889674821109681081926596801152317722264951617188160441656921511532392861310356524603664449207348095365027415571948273871465365593953547178005191514788593037196384915327342572698750567313476419762754285267400881761385772097686638377064712896423521389138312645043364603732511452645137698938534432175099585841749040711299361489527056439170691222858558289381683648628353404659165255098092572815901886316965146443562852345071494425712936403542931236536213597107876811142487585258350639105512017744937560170189495948988654628849120403589895652865921993608262919212544761000041181461250090077072614479333413351172424718733516990558841900245929070923524819348884142022995934050227260850958402563783209147344202334640638447160584549135727135272183663595493781962381889160395239759086591334706419095304032655207889435522321395973942298457654191126127456527207443701341851715385623966255468242230738131779915725782961135673473623193173916321737394844622800814409397059414851950131841054233933505217039278756799168258354587339352785128580906114550700520299996580864999728631119557258033312741010084635180199896413036472289358213891867834868345149543294235032570637965851298653760708145351153548410645283541928673767317450392666839634038326076648220252059116403103042774010265657221911979024566205547872988027814245660746703942115438500375842659038932589985795334823020697739876095780083065356795306651618645218546814348954875870774615753898032726137994040572552636031141342884958804425243735795194985236924476112215108012623495460777532128383325348924906615133107474992600689633310596983130014691727407346775796782933044954964073273000248359790533791321019175962165378046716322820836487753055862179330201750284188684432266712687817252575137818144631354262432173736406947190212998429593005765610569398829292270033590750924450960475189313700154196196982157260886518764629632104396333872541662504152752959701664173316613928836053219887277614438476618502168869649343003960827300734990361369175743666250750626983453923592239799960982899151835540195886237271068038129838650601101396760525030271553822737710964534535222613329849629704270866736268021373219367104838354278917164692470273713543569046029205581127353818092254372428499844091171328904201629010688370321856718655477836848098973423403217707553756172953600250121990061247372631457724960300402583889171768595977791689033551055581757886934503674166035961137302455225042341757232710513372172089746432176670139950702509813887141768589801482968392157281747139710856699106896499511917762985303246432569661968629185464360087836937521026790088965795135520400804332496040164768462951920048831723087160443099884655532148610451131001557126520069954645237456668972442101583915590953745287294036465748889240115607956618005607308769650091656293853107166525040900033331955201535421155383854002675419508942147934975957702552590017904572166105509962686221029295807207485437696790874136563196592540153676361760692178147013167958566010468462821572910466709815463574938602340522389746700526505893214263314373963900391308930710278366255497185909943056680867396393175702671612588807678383885693732951956593228695919301846401264874002557040386832359409648516122352913196019770865779358628698833961500487104162517675033942717987394017504894624767949716542082402968286606848743648065398747333848000888236120002249361902136080218859050549922539096815022003480604107378901908050111369898348791367121206425404053843092495121297670545400167433464130287747855987448081046189969662340698677865112309093765968067542870440366810476757339160746751087301287490488071822742740775429969164333927422226705612389551591852052866211467548830214335298829108155448128673151946066590816164051579559659688625462401387522557959362493435458200913700494475263620340831600155491531109020042808844387797125377481017755546774109528767020783982623421951277041482208904623797399382594506585209726546803827179649669302504013540733938531904011580936214957518010382153679194629605942303660199009062598214730732310739802891917829044980742137199534208258248668769548354935495235902803722353917434546986085510243029014339523988202072581947097790254144487723758605762911632702866072321214027874515625694268581150141486625321642971917393159787991491492773595408121418465251123336851622886619341338614626746856351138223409344708182616577552500460421501654479111980466000960843595431538357838116506593351568643164957761045091596342130944788369407826877990827583999159994371571121731002808240014015882952110857445302226935974439162264769731718228794911682172229677985376499392603281217546059076983547841588163050805501594586416944434353350064981899911016529402194134021030376103462312144177707604866323054406984226090370620350442829759435564459249291633219099863299504266315249146320795976489315232408198768240812680862474812523110683158821615183581819732991615480738964292306201932474618954847836953789829177490968635316491833376742476176300632192378020548509684993906170120272936219809138350175782729161578231539557005613440181421551549925578718317701388587986250835337773759307343666954436740517543311985243559445482737140103016937361015779601961783975912261539597318847666760506173318103780166957616154919119158022416458840532566425589538694273660834512331755573694299816150223081705675770122913365915425059130158377986441244232502767759331229280646964993631496126435877682094867592844850310556042597433687469646832192156323083912967578824515196212626746676426300282859535897320086880016937628989190578298944159161105907818378099849586756728744826024234954961690778160248619102778180678265609144591738200714747601130691918014241351606502866936516724310679006010614686020990322167762628532834122647711538753179589864607793722784550674179292793276480029936632800488783798159152322388250801017672879834345420163242232137015806489839589694800567900607759782616031606488669028982185581466473786723896578595757647750364370029189147322683573243911255166806488737938937254158718553266593144451876748307171187544830683436112018971452225625644449496562491517436291642297312370975796226257178281359241917641827222483761844617511902718731659731776158803139778245839093955622615658690988998254867016105262057400922623489305237637398516121270412020478465863038329301266497215002859233996071119284914245474476117266067026191769682859298407011354766932673393465547024924369400154678929099170818249696341390334589176343393327313538216128728977928572558573518568823207773783243079451521312460398639233227433257714610537393415389617067382958010857812119677047148310580411939340545729255813430569338310007910880400159582949158307504016656865969903663568925814124842335949287851939342718744392009861649903506393422497972852104657698170432588967575408239788713686980026210612957091375806675158107312659661979577656248248421968458260434834143365467081557739989089155498922465430505749973812228086656677118431777831019916076155465220428063782431876677433707531901504114280165407671850956333866664334784340707500800660909063827748536756883105726689070927930881796004687522887658927829295114966997103979667189116678161675959628122840524005024257367524650865005062786580978223072706531158462165723276411222575228789111203480272520116205427560647473125034523898203036022408907460118120047756576120026381188904464195774287166982754935208348165558837408528519752506417661414721306550414241574632840798671741250057442384249432701611916702409856791546583313988352944997257841365823309667095015248397711143146315263260702371531775702277313796237005233064046616875541483887677384082578554595738625105582228215545324175455666372398408246931256646273289121581542293641027986080702991327802261526140664963917879217390257505899986614728063467551209661497756710291698131247504599660108229524243255558492277728042419835314603240872431598315846373490434907677995331806505864019936081858280074488424004258657709422550880673473934867050926174349871421068851377049464290081784829297904395270800976743265260359126275738961101230430427409703620218538341017533703040441795172367746965959193060276253646063947741103098334860934093891564527227660217378142916165665172314815228730754567055351200672392767570379809554211984887214379458752131724058030160291090267359533324684300576830354418497904084412543185279426271161282274993710760753885744893351193850480488250960126022048301538245746575616832012664117953092964494856911346751046946058450639153475303371123310737827178193932932268084574437462822604462004109665248872816470100896650667583526178450201567838937780082987557025970133304862994993703116392490307438382012637250638691106561744919909794032917620810142459059625187470578898274565208077134879457187348085589656011895879833716210775268166083183538839037074721832876150893992848200304019777421086524395419848163901701683988280161572487944500411713037635074852091086885517263609572477372666466289977984099729089207742202178114276926168344264915613776951016845387647915969026027664850153744950167595620104172142193131703037903807143079567066379446079055082155093014253011830012014678409231295500689305180541238676199142827321632894599906606278589940543971602866560027947561646407524605110155089495368103808637074143741906735097704105481098259052019253589443415528954855223579374373410391740564287949407590547913792243238568055692437054654498504128722923621798012982262904455233898524693842413698520555939284869906016342466689418864274314993197485118065464633673906867664422058835988494573601442958789742809596221617742077208649062248918567757719730266995991538346137529068954864297627445754395749411208653193894833770070063201220160320047460923564392848798793628497429723648615861723381407109574471521247956033423830814353122736544844445338614457587936555032934383287729387055156379194657157986904478837469974437593173777313059099490490573844914691135748078160455305872801506670062517760142934808303424298873163445466282612744156530296327433354286287134328820236877700044434696010315530189007446001260748599124422992292113133228765563388395571858423151427232173450601669896901602202942713864453745328487839973533866817016369157763114543628344293718950702195954785064081875087145864337310418368970847021119335782968786909090188793549014053275573870275368356032361106891669965623825445240438978742402097028444064620051132847217986788661439276707403428736717430047756390700964655835738280269251548515270958220690746741799514574509794855968662921066750611004237320706715717872022191227664189802206406974542078526340681456215831882989051812021123075242645627634532404246070161796034348577230147218243742014794463357407377085554983072702593686343164222880401493376866046425911615718574778603956485332001287518432275813519696223319803973390266497507302569168302589549490180020068129523773560786219134518581733594840655684539406459887766844882320684142143171848399600274450722080127455496547387687315149492465994367209924664813322904437454855411168333279660424233415795898979015643901163401269094516420794054410485917831866145168239823947311168368129228794012654918214489196904265639000411813272030340743212240345830539189815937990112239534279763699257424119184333462110889860018381935611653003536893537249102952805476848456469720476791705351139537369875468104057236184116551330158011768655555021922652677873009091803997663326007421441974314914913468177896400213844063604261579070420397567792866531254412179785420476601019533598663014745865365316053055508757293320505554303232028867808696033737693975136257519468714036323018176854596353992077662390807051572237695083838310302110361741529635030449760016548568522193700217069651262963693777074162454475141171240929323926154509437265771160203644305422794030852839349184072512714979017418577015134897297883199318315739079538151936691400427902403062339776883914107862159523754942176368376301613182742805166596685537295680201570789272215856380094757708547808871796877877251743955220786471144332362784643015227723470860053067149474257763553177056921974459466380680365261264768424582445692941669263071930213235455492505124311279140626075874269498963828308462049074471134096225080285949873038444350973084595296024103211288064855844265766289415726619158638465125027606281036243736323183319709310399638122763772506571884298246868367009909608667999945416547282299490783729866828741522299989683585001560911773746481871523117402885156906312228755936691079585718875034368982147643351765522154609178862114238939889063436953646894507586576273669347584297004988089068924949552032792212885368111733112573240196213776276196396324735225716239261330174315301269109823773805398806363632677726984022679609099617415749422162716767521257040194058444745787141508813622547273855296971378508264438049906442808106563337625151621353882461682597775456842547281646813869596048683396045221703964718955768188149656771069047277033933890901759208204748932724267158491922765916703316542054899051518956246918662908770068367818846915404697590016432536764548265244903797612491194168660512056748214407447140410099545628295796661013626204015073777248287867462906509719084159416100527832205787979519914918785466357688899652561247135860314125491941517044767086101781628340934158123229909502438415976148015887494700764893261000560147898119851882387139940609365412860053338323869950188222087276166213854640890726635899910113421009223419344151311613754000418941900572281563365545229626404406849507730296898268595230942044889979704116417165279778051827137404245993346480105562289839125616119945205344272582466785829082224864750422585598503622784629149291189811336360762113415830346558824865426892467520248183581387157066937180546907319239365583530482737946641766746817498041710618637088304703328086967087946906770884657270685421624364164130743622850902864248490041777843118902155317211534921374307883056905375114105662813967525943318097906106534820092401538785706429940268512586307014077477156894548721851886450699363577510556851032112565402574209273683284627372072017696418978895660057810247555061274746792051439647138612858091181623757049000922761792135920995443425062571790167321676144314552283062650848166541646233132742294603049145598711643498136881584268538697925993997070043058584277376228370716671814953532826183268624312429654417778460283581049720875994260197551236839353020289581730977884815348831017993998010945695067606022318098307886886918514359034557058437087631313360657507405147706949042065030180743966163227193462848501104080768483437548429682885757484547495239666029336615019260804732901368523587577563322855839964483069348311127512213448575862697232282892177542685498193971953869896748222184496382844668418315225478887250925158518040711378128403425293947593355668366603171771918811704964975013727223772308185470951441657472390145070209403584298748255157211535004825718489351075726612035444289615217366280569112032870197594421942405519418731471669397497610841508737811696072926655502476541133591355677725209667799545195558319031743724561919341001063090308679165094944114829324502229667778148519432643973188507327324667825121798403377330653468032051183162408739829947425242441068984977885599853182752469271655032028592281034826885170890544131752086861823610498783158684394080587965542425213010387454588434697869527269152788035345728100639468717761211162067043293574693419465372439894819734177962402077680891805403939814665626435800843057653500872188320466866117882513296667351260222753762406207911311045251207193006027239847976181068344479316888437269203013792994028206077463198386948249737364626356707143289065300127024458989173010445453545146881967139998419332818366220352220738981068381835191960010999241430880094750341498060210927487275729812682647310329224201974948937115659421986173893450857540032718856592633781592627640102585782643863339332384590499606769647794067022788021883275743315767367568071377195282074300966565298966428422749973302815303844805979613689866392918330734561487732068428148887393003135445895888974853835003852056295949968333123927303357040003672239379409663938361113826019426225876272852645652909534321172143975116713021310136282192576080768218997987390014443787704831890251841834031867180711403737387597538878037318189779332975011335384785680877237848708822883083251528948294171361376741898396915787127097191677135412558948014045704033743934805750692275242805380497836907325213911531116230122718692779443714923873344089365782035936454889221300363680901371639381176078443796558072208569811053477253900254441777678173275911119843895335401817381393107633473915796278933111073065615204839445597410977001750615665120596509212048821332269538863166679027036665537329372117137067071343072401755960293570427388237670760409689588332958360729346231098943996054414835844727506133317840351574386513098495050853731161255435474422817545019859478514919447636734272472064366037153735910986014401999654610812724650551988864259160342228216035205031502789371493172912641596047585005388869049277786804718432427339561384118671542232983828660021756519183246256826357321263347916468140024020221513218252661634991798269350834220977179075877196099074069619971395804764020722964884367504961735646670711005492840829941362509730674648955720471428587667592264837103491871453921553253160257666890455725681998119463200228082670837467204509511535720198220669825228095367686422675556071574867930812059682974018298655080737865880860571541856316739544927968978989604351615233984760140020525727586201825806152837897129303456781685730792275049727689056143750283622500202699748777089598586922245380139921656782296273295258568776420990859934707629568379068172628742963392653695821273642346693131971148730646279009781452417274677196304608397338794003186418566951094393903099857444732278494248163043042762235073875385648548464817205083686322034543982232856540255563102061461075890931587014512638395326528459307488157223441750770482617637766715450027594471748048936244316988002070078401958055487420013960051350379722026162429450518490406523294402864558172364215125264058580221021487855141887253286899846729127280565311283520844913361087804782933409389122270143659119206910840676246039890007622628132492334263729058815968949262839014789877077735367776035754818429499499813403207173576482319068703221340680927709097591369662000787921487276752766448518910352720650789456261719578606082020593227390559605570580978845727541764395322608473623565535854844935010947367670607145653394184613584610312856042466826723177429613185193690953514254917558259068159450903651484659742723261491972264064998398505260241810840144657088334215795033237699064316322451797476979446746133008380408666514016270948806197010842023372446497330298732859763710952368036412064493530876264379273307523454748579267824615594623815477171009693768797955083834686027565201870771319226323961054900192116285140322144759250311366128680463196580358409887738305846470626446237755520161330894085025281026755886334939502505888069436644740616752173162648260885767209390984995798531027385009982186771421817471910102604872277811889873996382352954726904680672143668933381915333029739338981783404750896089398480495184528702960744247668777413634362552990405164712790693876117638916883523009845993210789043032702336994475830716248762833591689515762747069603851079299114587613705581910593382648454877942148274526270771402488264207816001235653578838767598254335172782791704062182899896447218214429432118463468446572589813686093628944231430872964004912416987645947953474290420973466473864909503743322833520301612637353465396783133013305970069810335480716633631193253026765980416730474781618939065028754084238610523163942905852811402379247766613718864893266971153393234120760665535935750269852880002124285320962136192565162940356525389358366772947956369364902263939180402418293598056722320521126981430189741539854070814584506201265507705172634077767447447563682460289054222451727724508804704314253578976477744884329938791350689173287824838884010703779438204296666575889310476716477142988592345293929342533966892155289370788382048259344783066047700928079714136929528936465519615346045376653324833612451619128923163102406149879890867672982070650046511776614926023485535378766729488851903788561271469112169774642407706999537274341703869194463042957258321610544947662102422090535726403234899696643922804764898401786288100328734843881916232325132835623650950316805132179992770728050990905419810988235341536183682394338013393537111737277444722548017558701000542549262020946169222307176616863632694321470126337616615495874479581931919495077123842612916637956103745193584811499308746859010473263003763344131680929680038426563415820889736526160717324178761050590305031352564389493880128704499134963705061430261819678060890810276507896998316954705304302811786413943518864169317899925528311465962752371180967381908365326350971383944900007181813619914839566109350303137962634753850313957992217965511795932891038231027389712535170622515314655952080796346584593249944115635631370452359258781967857444581063949324291055154489591559214570858513052278412627585093746292205592162412190761851733116946742253610393023816306847948276344121028022827145678168306142455880522053734644999942822742140725680535425441895952875929477214672343659797137207479195285443599477185617455549797675629516643299761106516225272553335811307435489220657583424751916222612907975879927095537509494473260762506579640173561567264117783688350254439810070569487811777613282669616222155614971087121846499427383147337884870505741032987559317991842750390515786182586218863816930101705464260608800182933662906449327997293504021041791725611745646093467644345795818741290278961655803720431120628107239783617630371781829012502568370440556049504272953921618915787924880306519829218956401604402263254989783922348486635600322473988118996692213752852935610965136681814185816390560243894422744032714252020796016641798033854605363936437937952229667656683273036288830356323292555908112906025509200386251002387700868081241117508591594508046662289420128041736567131264975641720675406689787309437925615087127007906702231314084540980465415149957287401132690932051597064453900995399817634443991458930197768915697121831010308444482794331649350948289306583303468547771978590131068164432219970217960718208431382952881903371234338640092570231233884970647688377648689402356704020683509978085288918521517519500425245737478721330484542596474639167120702247022458187000984591600912091946262966603135414237608096216904193823829181085262202093843167439676737235895859388188735094835324249338973342892634995884497902912065606579574443576806538019291027429899898786026452264105238202667090247985946159728359814515497969099959628556869710546206797675771018310301896646323697798023063178445307057825435168669785752410216905645624941107790978647518543705224701058737985862748619584372960906413339549874066734890310093634230895393935642714861877460254931139078156121605426914668462484327140090997979265633490660743222842309527720078014945975545001599903198378737147653503479536006904914843897222869559138382994259419594223043294918292853204083666041243054444035031303665645597216857320446868239619381813139607212588039822153615376797156128437295795325326242555058996997985533199551272805935522457433775103049610204016242443730144866250113188055416634019171518315699478398995579896884769729179415656207901110637962998442542819441236187173812283774563202943375391144706137658793586481781509338755498303365453267283882162873019630774332011596479227373484426023630792718954091435761931845917097692254133525341722722468715316009035862742911333087490837496232539824041223599613600865717853855805686970273327371636728735618130269767928676061236450412723312286333573046311642125302073814402466649956118200652151831029620352472383143469709797304733376606755988760448309965270806601540702596832679485136361198334379164599064098128945334029676569152489921507489869016425649306584787260616558239358800811286767664450257778490967777396303819642255478974426462425691133903455553117143063372503958301632569496885504287823656039542024155652088785297649796990688947685873686318577294290596814258951716179288576936970660522565331052850734698225811492668986329623558551168860221493611557608537540682170474219700643030843474529835947702110271541269800326331068339118212679725755808042860789485906893758374675818245644892562110400800795381910982622561816317117466259421848630588606178001059997643996563989165842363660288773789058561843981276836832323715954565963213173689429476255120381230237137649260135424009757252569980420837059892240627600433253342258171989391745689504330706930655575173053657672034543831453174217750958621862378485584944445161487854631897325699270857254827592115476585334405324673665013034683089802658031721671488336062981991159866063532129673677375150362331663656371672850387961257189930868589787001523755788498700671571883867009831290189957715673207412191511951980208465215406106113815604110146968041744619955460501982828554492404364468929461416626443336379338930971052545196667546569749563444524115791882604330245829055736523905412869238818876695298714870501240286859528372117988472058380655250099094155099712713110031884218458580435257413510177970721386976533066997952962931865045355584836424235778074999827164995560915826070803479314315997625373778074444982771807018686005431314594559637569153594971719848792382025770510215567510448967561975763581399548489569083284705766510824088397005983170470489524493077905128657291577573954063748872488278164496494337579109781798112990437482950737220188121289085098038539473263312904812677004481029257122536206340142399668484585173658221196958352349832893394441234418839733872521209428283361064598694719304780708767869844768733323334570108614457354324921480473288192746881701996256910551578810667297190032227316545213467881479664719030071236110653884281609327564042122110722171688550569726763701389979607113468346045169979226788585528508050743478310635301346781777606241503576822142463853309053409166253563407306182098797035322320084743924219878860294476368166781410267545303307164335018185453023685037897952645153408062482396064872406352666772199443504080959630109604697140465365665174386132099560943935468273359101661986783662892448144973876900243433021624781481226927059954258142352858648535331362806961408989693908747246168434090671554865911032625002985110762700536153080977053902838364278565441382652374134432069012358892253770168977352686256474675729817861496204318237441440143093010866362236764196420747261388091106411063340162387567256705961381947863404613439403431304119866396981487414255983456542397997505508791276441935679012440227179253069911211856692047199353654520456883664302922898174732740860660161725519743160808951872034496419091469378831846370493445435002572395928583000409383289928344104428791969180830144456301773777199624534489711457466930698915049462516631485925668972896183229952519049792113756627760764669747407007125434705693456505715947120980530852680238118444206033297225378275256532061887500196991186458659296891928779236210085117453757882957665038331932667789886093207297179220103619938618788127163467171617030475430186495492563756406192614496726637468017682645555006702644951046996649991506185054601625330309303280942525522317078933333955623500324579175302680000114348482998708612345457426012352215988975591936897119746462005222538669337657464266911836477378379172364434186114026169041204653033586234594342868775549149002281645922634306386811019987190631834964180621364569997273039310104455425237705325306703850353379630571861011315522884350424671416474971313035535399790903096131800873218728553518778043377620299592367644522599646912396350207242096547503522576814909481656947413457045651003008064774774169703728809041459271319861878932177708587772769018897956621790768088682174249974374895543493148290285967845692095634782952267215988653305999972193440101160484641552134927199342123133420958101548263410225034512028776981379834353859890767348250088041936766092844731824628919334607722503237714138729115233713459289064143390253601198218511210875116159108083200640642130310487630908491756799861139583465464702552628598052807759274067122611459640617210944686841652257543316415516248913598138426258229363327136880103157659621280464303988585400929143861839318097919242855102469718213714029699683934500388933118580232322303228297378283766409800219298125288807224204316923381571831862536842292833131293758112585099720409951260693627695393650031285523645748401858130226851887826897691824655362441931503526186182502180685218088235955729386325343297296054177313458553636363226237548415332888001242856883166998873477791053355645120913470365966197121045633242743479318325148450714729266170218752165557501567314604728777912918243805545411265942006501245327203632090567618490983181011339460234535343296592024563303948639903063909314821729476567020339370809536092428549515268226034780729007647791960412197394716709134012785920154945676942486100170894886691225060861893181312069543924156293281322800205654314043105071873585640583700664145280125174379921561272286115336877480262178548162911186743211450566739842380980420311280544350350572580516004868588390885420431499197451200879244407947029841934025984069613718977998880936311977628268355828920643054062258579277713756651312014863449560369225050369652578933096672584968351354881381167615771569671255422167245366219711174101774089257845005191182659711402283388567910389627966775135741430866157474265071822515710904256354482577325839567441174248612811310531680096851556427268856428812882740635436060079619168334534252048128921202057301587457839193453035946433266009942115441024668519426580837028917817598408032284587009429271203038291160111778396075696469297047928118322458352026722201171673133420649007343991455603271776533274912663804588049955941456888893915104585147763261281839805611594928192874861032903509238448598871425830883454576170840343922435666763864023923777452344174380423585647918724651285058797200864851605173342929267873209624181106022322278652063339327787743953995692115124819634480699089971948931801688575497947718636575988328049584865878616893653174006105760336770499006158405199725508044893992730053629154647197972213145569974235821105315167070092289785490746432252515651400142837414979833130328776988295839337063321244735601493307212833269062704887709060361395411613302426528292680863585197773628860771343897055225327391381108292873071991435529445023692241304365499744514050649374753912816909662136505681222423308286040388177261142950277001362069293591226991400912540145847144252263125098524184543871650904055974829033006651582402584146860982981156774274007485406098796368745463725336875372387121770207176733792066648120378884545514181557730515555000503644680592421744156201629891563539246435263169748598080041494133592220306493319757854357265432123196681226153733039674875586793631357325767898561948144380943363684059143375336220606709925474998840747063647705664069611509079059085415476109439055394108640353152287748885512193416257553231614163625078043040774293451218423034406381132707429136502330300554245350258149895990814812111045936604468334636712823661275004049179616352586532332556769357811800801557776793015936768471684570195517771237360167102423336177483115590149328523463755822405766220317081221086267843572257867372370371710084279271753796039331586120846907739569965469775879946382278243544604024608309688857737535708101549739694336402402543404296720080110273725715430873142328910449968856860458324541942573635537874498867109185784193334902894919342432283204859146345221307816497440893091369621033724145484154498063506033441696755544312920612058001724900878110170995587548146517442279788187573307024317379532935374037167967388368722888638371683954612123674744773921118694769316058366273306377498185933184928965792651842060343466553328416638756819399609884747977051459408990409227975720045815929158866188531265735159190288920526582379530041604452372606275069260799538051729679081071045702832635461391801819530836465244622516608826320875956074047615106714232550937395094671856273853941457799500051201134948912395652996482563131340253927288316121223898913304477440538653789354552736907501578383220963985640757355251501739926043527398342426387570945209452012532889656682665753100983612765371660685653246361190735887290467996997873624259033705144314769030883650770593761544157522803058676663432243826274004240015699934884144910891732524984258122253905024098832565582701321440261548834340099552235327615298898850331156003318442443502166946446934738243627434209080151291050388020325941988202941150430369251899266820780613992428612169125483800770994137883070997580980343738965806995619059124768588309531834591506887352140343629910701122380147263125068035518711496867663205249268904868278241385719856475215686565570342645356975802800844319359403115038098245341169175351315804724392919155441337973499708712713622761174102901326564168069953795891105343361104907148201232873969239369241996932291879620466476313368154534057997541077255932045907661478505153532533632304661440599569259893697371590610228159482012230022646532381867572835943035180549056200251855115424957392858581010070733923554811493006908047134232626992550365899807235171606480098729020476089551429870283325590333614614636638150355179924570959467128437594195720723373588015386170371658525572436677256268799491740217978610473298564726097119752925871964380894543325699784694698764343520801450975346407104978110467938743313508094438648878719091824165030530325937943824341429659361710117890750462714862923114040392141007813139588464970775630540011765358996514593697872902201350185080759004004524278261887934590078558502580836002074507456392461943890226511863318186421586387572199355595129580049979128142270509536060845932588487731478210156624214181035760485419522191158287471538069523728179432233206572464030969572120773951485777921350947501428705996639927193188246082994909740625896844915738216068995430865638024790578751229333386998964756835833566962729050828627764096976503225084408255148764721098488713319266177584973139782555863546138740063619023955498581017107556455437257211634152297538198197809800024970201219684701915050560804799726868023969977776424072577729864598540700982656666110027890098336205853387815945362880760379802204554664312982814255083871291557073496216639999240610016713150639512280757532805472700658376146987256199215107975057983724989783156086315920602686109283451258989907962603668881239927267657889791604864946069987176710178839211751406835592067434605136882583027014488602677217016203624816420565994035152238840563652830004687717674686884273814661756119358580620151365420086736716097915834949977522111193139590574588135900443243536957886194652068439713374275842909532392319372116366483188107953292972415346034224471093816400558132740271900045528127570766437194732877886604051066076315809111347895666182528987846536335621200296696937537376876485292188526031633052803511587500748372112441611344457615888943301418210289985692701596923002516492791355137415189465984270401168209946552891638311842180123943357590909026706735555863092530998425415114402568376132789783994506118095940068425456727455582962118979349403478397770948391206139740013814389107299235280867563114961798428921228950578736813446378521298698728279835558221971359846190198661540520375797121774186454407108162561269805939259564290119046680268482437107246732529368526729439443084350454307157816095652382872679286446025725333343935932561176050184951890696074171806622260689018800682314264869411807057661935110110891363941908000230528294582320790576785792526211948382799931056738981410075300552733226863830829708736711659220478459357479835902023593034495155387192631563387593851284608437479703312521766104851199862098197931750262234152053806001119329758322343522452958454157100435219678809724172957543333096533375751375360430208339894708311102536530298538529874155612254154242330423664307059036203373051258621586464202425826921432325495978770434826150236505853413859494676621361929597400743830785751722648734850176547426092858840996149987723844793023515394548808551873800182224901789574661438326480576143420027321532937706567193874196198026687447348546974397483888666698922312418951243343453762195631986012079154682914651405874384331165030586748264467377604605415389106319859782705856855450988622423494687917861814314314332081367202006701916793512668294896768360206147611773522819654978192361893186870132014232903731962394671331808939146871355094633874770728495883167237503274582157593296298091116144539845099410228422132786634352516491249412500648625986273472439618565358293767102136456776606329914111194036764235411675864548076708738886459842941720122742508938902010407555147395973921471646653512667400202373780981072255978706541457105581769200558748782613462046103577299098473840079413562787212543049748596084710421999213235689619570883989407256107253143549231416436325503406474289945563715387914073301644422438553750413219069494307714358764365316500716484919628310374549007060412846697971072475130042980738791077533787077987325984395453656986987285959115949394204512304171976223711002334425685796702960871187439560830215726863540053058605834581996933931505460876579644588406632635976327602621780722414015465638471345110859821200984749159260234803228838086242781658787147706831009376372506962867350556678660578792812861353092337837237883872242089641241574030973285608186464642949217261595520965570465095211922427774683692926310837979895231505082530812024163706650820019054396605159401287153365757226279858346427177678419194692372567294997376033549590290462282350715021147055443814724026451198679329123999241440025786955984298271156375505097548159979248661293102965148414069504278448974973871518105545764583252712906446426282060356210207784893609629479547003258434569653527720175517707058212425544393035047681757690610128690463989529086014543530970710274353591366465934206035982291300768916032693933230903960800635934969667061938907291431398817187654197401359262555222056809516405805279185131255952843130319461907858801407834511575237950144824050797801822906746619711315569296308403854106563085738170234657196482833639119027241678711999166835897704448609869520759009051423547875174232045402474479405242636926673570471205208716219618504850480725459163340774784873089674753022246785964411548351854791741222202597397355500187524831895270329831912907228176822317164793115161281071192433803326528112183988916345296127354742329453735975575212238719506430830712093386314627155320624137373229466874121141508972519525965758652428487082745076852272803502842555399441988680910316145475042629224421984811427636150329443981734729568647950169478950050167503208783744625585317915157975729556854419337946534685778789541377202372570329183168721945356710283658266837260444859702857516584156165175707593903551371995678036471861068550639875149989888118630718484854033686419283394878257477411789329384366065841059442093654971451839430922219293850991032065620251058458197683234684569069492800070433832311066309502535130248781126416185203437207010866477809767286604764566309649469934915998088676964950109685881460305835515511106006793289388591858449342130889709816052835156645483036847425496298581082459444254395841778313360555460869278839549106876940929802516171201355067176756965826613248716131298194691352608166513014348868698061121378316281947109438624429031821343476161955321790955743900394585832292513382350798846020815461192089100135541425381504160383682697086779416250994399105664524011117334672647230258643798417419630077870469467445895999681984316745831395228550370489381673263443654452704380423988336467026003607616891360718051655243236404879772119808739818832735237590707909827809472314295713203190859150655320546386945569239690654799208287869932999204516227987800000575096279444360991808792029963616606663629194740644298331256925830991704359863014246820972782307979901441930348788946603524949810193590097918551416558560070348161460948775374854161813019957231634234526809096165294589422832421279771580030225729551037396750531395584344796418161912993685775733055426940751899411823515308750614246720862844855975702191880631378028367494556825756193016610170508710259543758588275475472363019963678954848190556409531504620530369214175068701795709807496398710563540652606279309138845077820224539792104026105912167965967763713586942676529339447348318109162777299635134007710497563315622863884186104832000938172263419859580052724846564053572545191703616923402110527761128769017904391611049812463673923840737353909902297597844227854330010877942982066955477472029287565807313367888842770441799171904793065009192698859133165275854882842044317274129593428579302584254538854224424857670545495222500247492812230894611968708751750781234493113738767508865442764987579749506805569762155315980060981560808879379776046434576468416733608464493317747196069540977944268686939375235316669253253734540356783809008669196625465155472109246751559671151255945833335833262445182737199646363345947817644102448535774404961427192504838786682851473938602977914811668522686885248000023500864137492518897610996821255467773208531505292971687295281181124552610977573876523706426235468893360788140990948078220129563006963565844484503427110261191855729619853465759817443566207849929042405969852720263717682165020848485814567945966006905331177562535566976604452131342926451962403768350366389973252389909728975461651026115534720544706399137312765659817501171470093893652487548303689602047757257418109866291185895813575679276182325980193435359062925126083048382822820011175125137074331582045712245061413268511924771317669761786123390470740123010532093873607711692839225690888816244921842016961216207914149687557473127698501575316810345512539064605354489002842511942967362778008336902290399123373980177098010968655520967197310225799453786516434146537606797138958953822217418102717257657005960328547406027074038950749655269833535911392384423696099305390083373756998251598781314464136113574726615813811068617656049000051194694419312617129912173609271303171294661831374674361873653702076308970261595619748241598966901851480624408947188608572241194236489096240294569427921655857761414440696987922685480392989911350891147423240945016232111002334786256430960770353106179943269848221969344288271572567126257263696867034530860153578804953874479857014798192969774255443918192872999634521502354018773455775114436321158718837187191801365808906962307884777375891474244472319894085746131818370091430325198018046678434126771442547246626398748318778081353531414248182773796574374207378359836898205448057489915901426337057736399738248067748212221926525681474717556421306144849505307234255070587471250827870374667806690884565747538970238364615861993427216484108271942518209773692336096051758869025239806032401279686045247784516308732593380861700597979091591330213108256875168914706703027081696223589232050928569569850212163520933356797524464053945429345342478421827552156604218198221686325130705566950955489809212088044942402852876319456632879199072895193450850557140243681429137028200748795957884854605857262665260535987799734555567994741540173642280256752933313458974048685852164300849024710097051766882238790271665479819954398825547027732422619892280111285624020945434551374788156207027344000355876305252346477135258916328515332542763600086866228052375911619888979461057755437266244162657333367856684374734137087013209791069710660729846177459485538553258788829070363556837974859560068270291197547931266771503425210605487282006083707001707362071287438097745266473588715700729157865067976455083204694324241538690012783264421374952694312667610900053496655410945388185026112287886784261843829244905486837304784775081750562924378123321671621023848469532246122954080857160258023501388855279849655920982239593258532005449473408820789316568147043525506006005958948792930953139720086275542913824990372697302654256995446726535128745945893151674869073038291059879348002060295642366809478076731275587057362417133104209140650991826219568777230288791089304744799320839181868378285273273696051709310489896683787170178711025569288792211331295511913806486966185032022117941470874310206516658442040265042927148011421609241341929019560274213873615007721203135338253494345799726218067145921729677838896108549743251700502193219435086077910809524482951925342448123644831464170747906229378977739697599278524754540648424574464675843880196879541597965493803243526109106252471489202526944196278602965608074414322819539799835417832387859728608289755902401757170734929458752662193685620883751714268729900533246358706600192418841381182021797730382856396957018886286951594218739963968470640158871852951559804679851307001414926611602580651052250028964358380780757667750158010187458376277937617311806907832888057471084432267872753418526779796812567865843440762930303428552068754778507053522783934752707436896563244844502171540977297058639493077183260437688424974501798438198082839276493081958506119724787558289318840669678642702289149167463471635394100764671228124317267148163981363142881465936046269499438508224085132763697129907846549091777021854066796450326622509622842664386137295540050062988071045048189530442763327714548247730456528937992206498461931349476234084846167074557415889167451883264309539756613080661671153561017016164180989845919750053773708627646373166185036615680712906512146129542329125702211393378744931350653871735174061082803033529042651590579342657856299307358326434158379123987255656057184939272073779128769139142919599725199207229357747194109452593985424228732885953086588749785795250788138516400201037064368007396674804315819368037570182044925308949155836777848217790989942638294134839105073274224918430421570296519278522073740485871969818986010188055022817493938999721378805900979995812753109307114723297839511854005112191919354885165094126262231076707215064130165823003934558568419027253133840474993832000858105063030809332164969864925717441098166271225975977226072851184580306223855826768531945740450553573145959940035053199913737150305114698743896935570477645582893833292402997516754350748710174298134442363599226974971906217477943550666324496224156176831185208074109195927260037895850197888816558771267146988380950257856415509755674131213440863458817404736087020362878934715462563530585632739992533786065022540654533666658442833783355018542332803118184356671061135856580917326063165379519016968364085931005465260245311719217243574478792973434652524005711723250959704271992054672600479476273284783801527189913882945016429634360623214344781521373661461388458460809939125229014166569169432813604919443548411877698477227473814940559326778370660828398661089561826547098276856853224632185673549899475852331231894475093551811902565789722359746287981783556691114836948198206902370359431877936799230972118779117196396151975124601782565040171376705889934553018494343644126821985691048833491065769024757071768576615493740118866024046377909696188243898676011812452468387966912205902908931074236704900727616780574748811994196462690584581917213243747548279019177504747409800834959323687606950181334702338239613321484639574843480840057230187877349632489366246118759234470018640095762995602022450997256765191679304092856937428710715259941872861486803519174268572584860085437177789201120214054191890373889517362295646437549052908219154101745614906007127784481465868929104867736374283620756989354320199865135590334523879924525183774120456203699729893116753204662344789272253682544363340309569383817803190123871186625325707047793887866231112653878514651851297222967901651938636399871764717156234114418284523414620821692656780775498519226223464499868581068388757507973716559357965154666499294494148405391507368140684151710538521779685267995973667804559693402248555448823179452955736508630113652123611919762075398543504373317460921676737217058020506842166717840730972084669617196761884455178974402289234788485183701872170200489544100514773491899800695325144968286300492541180834616288991944673973128009801821951392611638939072836337406366485260749327986441770096434297415850596689949512015105052738113023169066290752018936398107840568963410184520506104718897701995372369346503507099309261124069933755838060413701047144407316353988166643074205078522577148750507885513909716403845297407269385510128916307638966713182722426869481767550301540510997037567521634538825491356053337506916197560299788809242028183747229858309346256953821214251374372940336171047393022390554895820511058224212037684591688210730806475779370196508195746070171191299439313832953820171858318477506448533726673752370878225119322778147028602829147104815059984246158428469484061232456963073439018508246187566690622462777530977032021481944646865593545834072273649656845744450265844173295823879750647500756211000840233614619859694240620474970276378779463168531499705921458735919679012149240035827988163807799964196954377450055426391843198314937094608151318720769000383096426024569978127723767886542277696098143228170863383110588585361630791097650180442661576108106535019188665465787976475716617975816118292940487278170922503424077788705505281787002859718169042919771230106680538297266936267752406590626042333435672361178864331178557351367200333448699627083162255783173819117104912376225096613955996245553965240205717221586022090836835935925655095860880527359727989115931475113099950189551670013770345786203629060038771024702254513839666856001331453425614038102637422304303678044265067508054068312569630303646284215972797840353885889610636390699173302498308352611466915067305812622917631548594778655796305012781736286657016732876564745323999775505499654325347650628927849144746514437716342460183604615747840716165089692096041362132651335637804884421151016345315227389125408267730976962943651633980280846227478062908948343463617839966290519726097740907573102046322034515563270474434448187852388081970230658477174357153761923909641705308251748925370217300258670788196420318759080233962952436260275384147279128931139191226065818853462844519462934131228957007063416931034840579309448652576192236991791926473308323635509421428538563355925038559202507699917364701746138546026353915932863818063898661671037944589870211378982211106071791407965140521283720518950534388805837418142311393107070151835406078301218112551298428434472210870767494787130651391743328964128353915603628666649584616584982454410215411308574612436944299104243390947131936693613356072673773675174957956082973568853390278465488676549780748008671447224386655795015870127192291384940345922678239944693060885873517780714544565997429920658556241774590057798126371890535829703324913837584712759000197424665167850576536302517170366828053397262939961047408211870107024336159696211449184151653103326796992835708502707312287910890938043383587481823864930775033558551012976694259912082362592106212384682318261698941729340714913345992247198604189055704467491508511125163501229186523551057912489968651486283817665123900717177237259628325455152761345873949929267030777462842206545960693897880820934146585587812087134931419933143536405886058690541980505410996734976756941810670227628804863322373262790127343238377845099751786965206681591474017682911991669705101302386204930756606084641235493910846879849785653048185788795051089315929138440831166806785277618530684245783442264959116744253166859361909987473471208294425355640109870789642399229397435805457692360160633024351853690290131610350105730006297866684809872085524693780371216411874329644821078932752693190111617956047202428747077279808236961847993183983753824631491132625984823153818900893631448937921530767971786866884556508162220409517682666907562953358671907624707222342016033269664394118398016476003247629516127775065397299753248347370630383049191025560626079509040014052793505781232163638821586822254791933644663586926078612725615784714437053763466518160308311224634960381632128685370162196480437270608882574572651403135592364620126236249370200534870444440986852494640971515975551620985802585861938326660947111205868977950440166801130061127498745829436889812477296618370512068172297660038987112059335580131635649813201951657514391105404761968314378131559505786556653220292108409135418582715983923352819494310090371898747744941351324953144685088204897602569158229101758482888069338193602043590020342283815729472096218884471473547648296197394676634606450976946325202125275190079947981933158815210719808377222558601571534350873166258605766231391989894180617544315913174644334708505399049371330711053200077521681570455881419697658058923212443873685619617169452468684063411335923333872592701853619505236327772120410613057946654185426335888290136488953043259950397230559295475586833642291205311442147250983594015436301909125150776144335841965991227964788403913648524260145829063523435716815486379008468941593301688273171886482238310784610438240156013165270732466554124530236885152379502909871537207989359513563024860851433785965810477835504559883733290378940276745870363798111792749618370078099850196298634398437929060965330196018399827808840804102383740069295081422394804883426618205226362079671567717122837135701377888287200491748395174713444501577929160611403061719895649881575189499738935526517142208637509436169386773883886997314596252668921502497206166310363829814085501550342023944446725845223734065369533745462584535675092291705256520477849350143051351688713541186412290566388552748345072404113732948018299820406996013060806857191700560129328549158773781922505606294006790660957774777536423843181927969565479578497294634628272904453109764680861462712556693752713046468286394751090656482691533284338434410847045315592369666319957152303231803682664747946256744667606488323069970080204212862487867864023549164020444949577916196012910642529669764490832419026107470641546226279189829677716986975447740892855677094186996629047299489393539498309440380572208701853418001156965221135853519582378368177398637140717860428958143368610229534012810668766586013528188043645065502834820764773035082005182963425409630257735529216275917162414864072052276587271902927744294843174330457335146516438017804953949853577309833719525041224154625312851754279351315942446406919489818695660614185140754750435687930971997508893008154549698941697296222110802976435906808589091987620185192895307467501326733351137223537504347207467179402674862252166931405109884868836657215045920763689437579896902188876821123408965757589914044089551503330668881901198839209989343740142411675548962612491215332747995942794105031625934482534743491509304888213111910466529043145072120759085306132004189232869733169132484958920519814899388355357833970886566972543877109660453121065333114381644160547468888513900280157356026868853080123376558160621844810536173515435688673891850135357553648159375538271749663310174646799017556598449497072510599064637547013318681791484818169562537524671809878340442386190911167838081424168706249124964871796465439933388867652407051855349851666482263328371093184318754065038834878875558357799230853545375425872176251492190711303385458084342892810708885279968732491680172134251685396079175680789283338164194710589773041571876986604040426054225127285680196968059523987471249586897887845767725494100954497610275653260211826514840887174609549277192348927152251256251361840098871261755881249152222735549938087248169160883337202544932814950011964544386286094689068800328807279755412876227176416691741361012792935360129053927142394751344399017654449657006724429283830988998856192827377628330211587667282821360982144616841868873831008538959778942746323317276660051228648752348874668523552502296714013955805538057525867660038685222735480254975760409804890153952969657469647466746458405372289147290474219405302654000195435536032916668141956256658906802569071293778326529222485538104362452692375707709125105974447581035208948802844235256584052381316073030857774014340392799183429373364913133457316288277683457517356321914789398748924491530312453892494988838650439743676680122047175722909323133884629386910369370133293067403053241324832774887663236250779231136288623792587293964302013570070117371233524208418503543610450072184539941432233652739909163511785886785754831329298620380472876981756930823302842498783782677285813154902881498053079095902592731141590933905547535524070075158800451254010175464670997640628981478482510942908687390054216806289909656656144174554780831529716152009829981824779296422317805564521220742453170870991641736161978870111350645960622697118369764231326448888040054039585035944346286928667944420494528357624244118990561481568299536758666635337612679501142228824585042130447319139310336219502012083062979611788713076852309460377808430191057950594849129210959000823265746004042183247770867570625620977522420063224832002144454123764416216602877017591903644010977650326703451720038152220567003318902405090164014606808350329376303932505262358819881509344381670789482730652134782648063509072407083175456405551267409883534355639773795724543942640234182752545205234076326145028892642101607596316197625510353453397875424793924169344078696901013829051386591498110442968195990468279148644302552766847292831944709360684622597099852077783547217814568084854098214872952073192978433522203883256019411900267276969828709503634667551358477222526349025398559459154298651279738007336457971162324714269110656992275445085436472126522750780096972789424602413159947046820089206586144800915267626182709277941117751715610990853038541690750934730500514802729673821203417778308714728106727465134179555780534177150587691488564640403929219254230880885170511185581465227677805087451022202670439223866616634371706602358699115135146662279405863760001762974579821708392239473622613408550418545639168432539403707744688744377469975642472091586309690699686810780243437632891065030741180770795880817590563759435650218564825450803706129962621702788208882330624214966486266427008574601221923137057551244651996067133872672012423615328978513922904948126557780142203552316814777929533114129370955632802097461602386559821711173719222004755238227006850999865426444522452339171836579923787281942962359067353447248539925938907610231351309466810594134150227434134823136149645937485467834532395335453277133286917951359487412405889986701132770944020164136140882444314397792333089502219983261283729841055957274396549078340097375321372383632994107778412634527729760306936050646914990448697364996489407829024541319369661067255232116045128687067498332038347333500031121897557058970187057888063037875543034577926523480545578065618649551602553657203998000987765839325046091962112968179763380352072916541339382559427299779042915316783182371422311144268698353812749981464132503160197498748161000491029566809375687379857335275660172537307744806717860381379723502516457624454593176577400009543798399583164537703636036775344205769931923327314490891445905444319601826450460418162629140436882728378639259719489855484797187043287911565438786963650055171921139632302722636979969356888070597862643617989548972589443491867537735920255944978307904376429020965852077851525070418460380079913878260373510063135710360310027708562255934072401267117584101387464387629047376253686568546737233846278390239868372018997527856201517293457537491412450509516753059879213732445947952820513223905948078862857073233078733882908067119245583176687569924238391850580345163915126043379323110046781017179264642086008818437768353982272072312353791610778368568608961683152373202993390764717653648181982894451047205286389166019055811843233921916667213658260136496178630374864505102158678912810380018870991083580095028032978133568486035524408496010475276116594429749242466964961641910752575503588573594956992774002736701213707729402255878976771250312242913181481749534851128744987435723508046379274618345387356072710437149376479528296469786908534918094230621413723826238978422632746977182176346584469179623555992502055796383248754718109053245556903757459815773459237369764648409642556187570799676893313667395721420472058039700529850311624819617174367095406559352849972836670980823296318390496048517096351667342036790613410606625282850520448750005522947059399595272420043404215264269225710951609685735950385728813172699482004966926737850770535790602781982698333196836460068045254982170797943412970812967937792627751776742588696061858204423092023271171817615953092394140881119159935761075548515337545440830461305947145192700707235086345917633777868770026284465226681929895771897623257108855505372395125709135619676510383041090361976531585799378725467525282445670922570848045924965500144843843391556371359013435728406087576789909771178794734719616040143518125537716099859281508560334685021928583508603872905050156876286695327473905946582559252883685617261326398886080223809796659733723803775156084017880793939919943829404218866877510405563033061049853365457964382607692668852590756505757429989799689571746628607770659237667124954837072764502198361302946469561533935384296601726004208439566530059699498557949750458783036768447376998719279456748247324301412504282607037186649876155005898192484441979006429373011912733506860873225784651669597849470635007331236774242951848188235491820805393339985705395235376676513466752745595564110357238441673852703477957110116723210411931037170260308574395477993709381799976858393706624339061123763318389710698969981588757936816400368954417852084536145248380641847525687858342644905808368398402370221845167237982963818079400021565777474095652601479846318190006145455131316324677811466147815438421849948982292898671183502393323366921748578942177203812803836244288452774413013085063476419587898988501828926199883349994348007070233086981295200810407908425620223775787930982024020926180784985900171672735459542759055920604496682234126143444537159623101371288153283341569918761062369093419784831735957325855289638396829044465606810390853256103096009713679575258996732169291911399566416021341981527359982984645778984949143152021224757184106593024904136088772823702782880494858194910535755064574985261105778996740960252509005277254377709733498510015493641595559667480999621378238835547487269627719184511676099464996526704132518457703782834325783009584323372315030169692789704408156442705038490216035491564275364688444324040668579373162278107141560888482092711322423155013761385503671827472125924534793694889588812461114541366719229664473046644560914235697939971447630289748571944133614698129905389664250390571853843884862805247841219705539536403875095496287940953448839793569097638238904867226639431443538243849901468943249320362023770775747212618765748796996251274736508336675215543500765629135317641681537386821431081905712021187201760718334482310626444893897233263899449534826266104205225023079024976562964524753124514383839139810852655805312772746025161276240131933876929428238975969230372326203192506467523658077568997617842777569768831837430147547607590677713060053789981092536083786907211384059921306848727234479218250955358588313953567309788114773317979580382858806414768473782036043372652456355262274342056715913625777175389583459483239230893478238993194261598492033844450048281287453832375074849475810710622153838843728878452065059473068071543738906974846568348252935951027153403754618286003342998957630812336191998457650138324788592405334300774030294269873805151858007234389062079503531066372545505292875814424065102931272122578024173116821121988122163977713436859604015746920379185799246596431427078359681749751678834627952873346989607743538475379226284540162322569182143699022515569424663110562342624421615889406475534878422299892075104479170935702846594975720310031363983615094749263129042646099497169517812280958170389726677582237947347673412342460575241750650161303224008716153176079829041614334692303182217346897715391759476433974145269475621881849373991516285698353862287860531920397331721168756064976059694773541958668782309269083287321798553788516182676180270134358219346782964860465170022486582530286483910604406998295382692079304001429992303534009602702836034065390906678776944784907968736082275033574719302090391869381474107654793857382345712923295273354708892474479296553725239992213394093352516864837237743672659344272362405225233705657674565425035701522431629525198067372531131615406536333820680713500933189270571003287347520331624941443425615971599792794180213264696640215729019783970746972034953915192140464203632940785350940822399608057980136194047255388908248029893956199745536858160902059764090076175243949252377867238684377887184770223655400348373941184876165258868169965098308338883834317929573655338218509167805510058278152885930282127723935582010988507599817897782866427153235584026492757430394264250309299313448427039862906898679969194084256172857279077696395372140167610096806234970920155497307442996433868572386217151523297377673581468770589456718862012761088837282825982776815847383421882221253898442772691706465538932480032702629028214300636870958007977728546187578811414318378278097396105788919423311196174461152401869321325864154690247410924080020848512557957788254710693326843179501503311642877509063579744426534297705361031279891379826392354397187470940800773382308952362194637627791547141091234008689899433463064021617039859921458660143119587696327353154408667892985712450109482522737497845078372515873026321433189863057394389587788517608785511822276980622637695442243751917119205362936390265333243151405456543442382925215491647157337690209431595518998809192680130036872168410065839619487796351899437597955428028390738132610502856853058117155559156220108825839705995314879943467575989132519083824295506193625879366879394734785607125073129370910851272031799049378910841664800577274184937929733486440046066152345081854093056828081601272748724351662968454506488086195098693755939066761814095661647924480125675397608899588499603222214985942634464195861135703237943199140729164264482440480476930703791675431820680697805528440700425338026236362665952863334087915476573745503300642248934105041203817641780436788113944910884825970818485101098350664993883881842694703018716799028204937045563082693692622815317658496114708493204404954139825165502816990988721002206014738419347293029451037761969629999866148369593606767729105490860493095841010045891677460027092095438184600291158795510356957685941649809187681032376488238053949670321812678589856125323618218128766475084000854192627418723595999997698373890900871096473914529929081862149863865648264201734938951397751019360957044464636153509336478144022087757243941776294631837185922188190279410623443029231430513601387581077427862421214661307068114661931093168422911571489134135604779756799369454959183197494426094415167282946959799542770221518905390771199497668957597381460010263657121063363639965218631957312969886208663062044405233249135881387773241015041910187783517446508722809357185282914880272727796362848548883426729633345270488971272706161025164933575573759489377654614563489664862709605843584629954220619056729549044780718334832956629259721400290656276878550151746719674105108695398590103463195912254385970889111793737625599832643268732390987130113799065234354329721340754534760519785551279394049984864845503696520136569173466652704195940179255503177012070304976961850084695381914262999203234640838029216761233473040473212785109280947810018663886932121444669502421422413167230927903411401056054079047358807689012575302762064598020141084792858186090409654911332071380396389950004650051282426074548580230936809953380246713226893468915905957011031053299029328289289711358241920766658374577377661574647022776230222757704690936078532276603927517692200334043767119797540461793475305535343728981359032197970761778074233628760363899232453143429541185792664023134775468506409148822583377907975399044132870276518853261902093356846149427368150231276196039008304514493342362061144618857613394998077973042969460638550027271688760379865962073387234968301169686515232918283545195876876748309875713241550460504528784391067649347487749041523367655651453639697487885321098122481510777996837479034433926800695179735632774367728329035941217785724803995747300293423769751309125027044522442149265043946806931304667149334093855917235463810828269124111712851783027366115163630176685579358668470031251646228304643237199981367107554291251316881436769387061339088320319527191373253302116469686583175204954664155891495524818877551145527367060733447230660855164724213328182099654270409612873756457457715656004475789456461058564964319570714784258668652355951000269864252810103639458191269784880106299525125189515709366192741201364787010984364961641922408892285832121649192600086869336670954880184054370982373383244548907066332235206397473834788839967261575185272219740896027360356764132098572489165857765354464866897378013716348925684446007516821080177864110310744827687167023117228993201435261043117443880955443740841220911739314820717790033206768758292582641970526135533279074503025428597056415611100722122327937769543009261435586512626523414015924580436055145488040030230764664142310732906183144256190591180672066607948034436842971763800345029384746955809008712777060096488727369643859301799084428022182018582319123883190013675098252362933545942773105033235732997314841657328049041541900792989670275205867406370054950690834580759856694503637103175534246916254411602575656473017894948031048560923418701014907400687224910687263087995285615222060998807740701983448557093654544664358381032223735778626877764255652686447507791619990877518298446810310605952939406709153716841710187857926620772089444897958710147592139451741828823610760102760876443068719058303113127850114054504818758524592095478371975203950776014201437731593039066027673555552969162977023484127133806811498348021520546878071924679480791165072193934001263095932889250680976648384882826610859991521137508670095531203890960647740984178453637608884662046892480426453102385740841201704595621614736894495045607223942404590775916644140175861231952447813266108175314171727491792206181630848834692663350256152134089242407529868552785935220435899581255236943918724516657289979177732244332755527428466271683300190675115710611666503776159099146482826914763200206198409446443121967180981611643613307020635020556266782012343413526718276194322930340015342348898802402654117237271337684699767088854821466557815879136131715478593727060473580763151147894425785500425476935689015353278610570286509384003923865158185835382358484364526894078836921089180703361980022397824861850187874914381617788893643588195177133477414487656213081525252879305467465600192218074215906613251007008249924564984888449816391215150071962048175734906294008041933614215754683443063271542814388508011570539279484559536607164244291934683632923867914719657731306368237571654042370415382676344909096032755506483799801410812253399958845591285257131858519534765646954711099325921898457146947934251866294133685998452081737873510850904951844473429989804669497144607464816422155742100497390900110467060261626217567018074262169542302545071005706614874121668890697170629258375402597634011420835624773542660043595617226604678690746191360234853261278415365470974923536983052624437812232510682030945971108969294951551125995699140532796639334019361274739970895549961966766420066496911996115954470167993052035258094576290103151703394989803983809120680878088854967170637276700607781692045462348401819403268850501780215026907131572651048727709469194639896748751337424847650281749133332961631900409364957481677500931615452583597317492567587310919847327272583747920349996994017742521668291234317455226634448771923916242465146623042923813629133444480452080879276212794222835801015563850420694717955713556240176443920918576496855644051204650768841966927573695967890650189640435573672617927264298088977904869229156442290640386338914280753009723390301401314400032442912022768533106702277179080159630830668424900045067344927371451947602524901990574835448648390136394134088489922418313083984012579807323227220289448704576131080895131527088517026585753840070947612703417338592512402016950640431314464560846989816713798507462963534084793260138938568427488282448974901868479762024466437834327459848638973433748621835921843199956680938849554724238807241987776856215972035894496704207598111070924866509208971298757886794395099982041863879704589522278276222670604673124677904663136863438461986115984161321410832336869001406956041093065387426730455262076002916076126881717992839699949393580358893705553292289052708673224962299948324141070954831274779101992799455022135221527469414856496985583126609893724202187062655541955887086584633318636232531036595746097288493847076599122200275182596640235284777071501615346181889908703354019432551096558915652318029293874418994602966024017188029195245815764869983771790449532548428656462567577681030209984923209117082601121061940511436114802568014081011721669341155981044309955483909286802122070975438397273191686747323803079085620974434644345249413993451399150597970415414897623256112354194867561317728109582088285657258306978750768351797003986288754620237459292716601325703938263686790523002795659505278786449428971233145948466719053124583027793353194125947074429890567883620038796553681659238729403500397699562278166892374173070153659503010774126524131162102392290200925290991103544328015731500776078282648123084638584669927871414697703116751603244268409449177125359551127539159005499599733891523758640496864138307959397836146598969163945188928229614740195486836509583429973239656494571750312431027330321789448143636345510983398446185244623994515583236594222888517965161837639266624023498373643907936917200408145510113891172184687034053253530320614519313175675453279155719584889011509359157681860712036159305845562175730974394767552239730226069999486297209124104780454466602229271409068485281729270603719194513237041177242875220911616709796699272222485547787187929812683393276905052416044647887736916455331338668749134189586578422761141988095558930571850504214986438253372509272791297165994400030143539086679268674066832931882097742958704599130877227215994364423464862310315482552608192919138748536543620285785109034431773857706175338286581426466299964777984204759084169238419726021810081775069567805598942766351499938130869006356743672353821951347848038864761797408152092245362699400174308789239545929516886717345127104323732025896153830966742996960490758758728034541248750954783885514651775168033425161381726988493696816770935565420085447946713869606983905360789450875398327159243053871087773248921700020232287449472227851989229731258631600665935928529308391081928103868403314003932787317188257631354353598248929369870134653690628030582023939546200233423256405639390816972143334810551269224969647720676052287708559357466727770550661973893955312555749020898707812484480060439635420718727236057745848214149850105365743598986912052824201749071473534218857625013417900712791579797904742057642643399421722265256219296047278635269674756284582916062611723393543124121247208654892513864980103282479329449144807719232130819051320196572400357294163602753658900478530777448218987016631526857630759125587467721180847050107756093643862547632687718105957885942958095613321043542825828689047399817585327567125405157746541005250857588238497526369344098813662708334118769156584742559363117930667688312050948568421545571790675619784170742247990021257131178120214820313416155331169615520190529912893733216003256784738142675926131781756444704963171987270848810451106343698424476670950027169834787459245411196251945137952468120411426664760037523360854140648350803698409883500304274849478378475505924056170385402341857006664434135094081097577708827187655228623845761529737851613024417831839198066229150247883082505235730106323229157804874637576486979862551022658442515281466058913575971024812346743222244090261552004846186277462139728324373710635017192900902789957903591110289887988458046480817436234335986219752480768790591496614962335647833364239807624761305157253446177457107661841821092224418289632145792902538702312471445441969604855136211900464536328589075150163755520877502322718054039220007337526829724115925519727354435734965883153445690251514975918728689680019609838940397740744281605527087103134235162545842224237023114452411825442309800403281298983622654996038712651649992403762075377687575399671463082779601539257625810961229193412269426068640127531228905209982203261674272242843438840675464548497775935744430248171093234399260769592709255350170331050475174626817184261749121163202577148586303740207528065941164967412192840669495787200357526321247131472090728362422135219683893321415563633604536916501992525898291482323698545453487691408642393003210060036918170861427504505279930570109740432452328320325112852895087071048368640131746694910427939977868876043393972275860166781411615267831659492296959492810985343110444792616484819958409018520162860848944335633216545888832010081525529723478006807591421718868035631847640302881010981310092749722954281146399138845256420758481340031547050493456378166821952117505036306952536044191615357746944095555387213724477836823332872900086823742492280798612781856869397128667079170603848535219027773101253669484290180245806861511163812623180492465237879106336796260075998880941945418328713411200418674570467278960516476323629068790256950278727242432953675995489598974846926605953906940116939326718466718488141440155464998131871200833352809493727525564227847735087075061495025650770582816904057674145582871766978733736434408440782261577323836353418139627147505713253169173051590040370799946501381950501744496689031984795012746527158582157090708399704415980671530231372745994287985254307999005462627684029738038432354904741056053158832687355453507451328855237881234094366574973939174808532658115257863431447628118593044645071383883020520998451228739445973565018539466845784443152142532513038855938434571687232754659571908779610374909178598089716349929775746375169280285429981363638003368386663689148252160749169654662307522752465840763692241981744945125749702294462662439191837420945763601177988756190055499441754256637694554799526916746935338811836917351839050130179068864302393442035116269758595345355847083433245980067621493103250118047136483871172179134880321525975237144155547485760227490620644910407892222107668627821994905193958959383393301307605679026677455687143667190068979751354586435413572441234799694933993758573477843253591811547564562775830299510720229164980775820053838969287470571348657874021889941507357401851175290977879166411556613948418675434038431739474134177424532068221866335081729931708351000407830430914133671966372220717818405458037681207569003744420274942476421972636337186280792860357913260724582061950048945668858369815186364811744816676296901483285350426832423948746173195025378325530382234868400994344832016346476024564854112547528570335042607829067181674777645029444951663920770110624602585306302460448647674382082226076305733516013086727702743692613121514090060984264115922010078483906445483490336032252860856818753250103240726924544439415139399575507332966243077503600044326101516058272744326791659148425262142803527906651205218966495754591374666255244082967013825773590253530331684977155799700793342055651143962574303957471078076429752700338726171611354499413061079878198403537826581736205104787716632713877609095473624031206299388737272203468656136701796081411562948350362161010132557511870518437262726455165163518171178016593452949247773867309349591257470131500398086383705220767115716005194250547994558838678982766353100919364781195843512379312466359959904880516755739225403937980831626762502329763823673315331081586643086599082306877688744470631748016617436560687323350651060156877514566807700162812455961406182163815454521002885669704112354193670027837776738292547275079183063673087479775857299478873583349670235588557250969208520643367416435397674016866554693497565309193711005423018429106506359415043783246145011262178967536373231971074451118340859389246051658894818456577854008423218634675538246431835917078839878236679657944964273452173732525587433958394867414990135785152726001631704421552517260471393573811013986853855530188495512470362620755926116249974776762933820146946648896058140682855854509228588447229123067992795607263730872725411745677939543452130653348655644768783545365309561541417115663164565900550143290186964442427071840373883101193345320769220611893713093719671191166594069451727000525063433371458982109418499968281585080400231476195462360697255300311753972973639938418526590569664358355298349333598575439562791527296885191872765478012302666136280472147471470109393658459296392942161863811064896187378148283308734745801403753915506190772407007837344479243523407251035177333110333672933631798972328831146662334949867034336606523725593424974134535926344743161630186165490540342319352761941574423993633588236129458399650401089900380966892576033988108298442018954529871033327388093680374075011720914534399832151491291723083376114373089071804723132342020282633390808328407196577426838050704384802128023270437757340829382197293250611082995300185202066294316477021993640535919563486604882034281714312230118467717525404228638631010465140201971804572257008294047606567016056930943259030262321423018334050610264383596295033125031305966298158215771998435293355708062444060753651801765533583692344944183491768274506067556335321726004768502050206270319596638594320664049532589042550603509121707489625273058811867579629732852218301921443454010162149059472066919316217074110169104434911553599830406540631158934817986609782256337414978898227363274568499111852144524352421709645579868109549892969772352952149001073145267682654225791870517320878036937686986783598763584064291773225244773867482257796166152238625894994782654045214378933236612350902741574307964951503664820554980409758263932804997152297940677555567524701181057988535659213646289614790587230302641974077498172575115131145531436520344254585951512069843097064830731961073051763566896328976198811978302703635119526463170784408840298405517693641768568947852969820422097008828805344246775100470016462653725085681115368708824716588275820577264036283142857015183006254491544703153757595665996181294322928116784721734099180347592185585122997338873052277114022565595984343711581597744061620099384514054348911442379949667143517046628518275119023325432978710126773812250242030143605721608650002816777996181637788141821479458511611371580830661741648275815328432541356009391464539679877850105829015115782576836460515176363417426694593879716656370608166542489248776711119618681506714418780961194270214513758130810127330545903290636631428703863092815690954472711115118498226116373677878267062473070054606124155876073819009958375737685748652194632210600887227571006966347766304015751579925787375744776318401659079658943513687197068984363198486784923533830109928901685671657217855408733399975793845965755055301044789337980025170689514928711726657587714654534770440968207822553898018295187170995109958396177373826881941598823788178385912725120320734041396224569241020683299334528123893085829602180321830467937244905607613493522389763756966369192859517704748174502801504850748092770533478301379900342716716105597258129449674269409789917461031998130681079502188509634093532532724537447129370788850606800551751306341484625504744784048652276462235671857245394067248788157176455893345866224707814476868586209405140354360658937223308629589916460499693078340740994231276741375385580112080186167012718781210918771036687976513694799904904002770580194406479987215147726758682308828017765557455562242459758314792428600299321413864360489177648173318930337111549956907529020966079882584709166385517046488580979143397041112224081579856775283716210863997820732154917534115971909600033351235018532459131885250439570404322845140091241275474712308422420108900907236087681404856894482360962354756470354835175545037919857606323705357039356259491044439445064725139558621213499223502190133311851765230671043017380150240448832709004916366712538256011180029278629415067498035137274021097093701905731354187517790742105267769488760859564167532082268600769972309668202493840745032008295354057366893424552721236432005439712366011522170051940118439731535488887759628768287931619745561320381985453132483352379118620350456650150527539632250670716311996249862292696728206855868335544588970375358036442191798278229552757922791359570011393791530475973403344400183098128145146620261391298335052078725172326162536246388093516056548352683811129994616803952610919865884333689082174961377173232059861763403082696129263529309592485137637191784564486256600171351554984920191343757654950166406605377114997040381893367281386016086433584681076089288258504678520535426317008455149418968233883118906035686712173021259118810901435090658152279851409283978155168277183279339455199803488175735037359537564655338847941200892098974735824076280496386922614717332788865112667135502763437076189489924713375593821643357033706643599008835815899082086190031726048647318817140043447290863843862303344860008913877987491734693792184438833925443799502088038313036939720624873171618334042393809493229562589844652152101396103453920882503307311420735939904329281770116814832414618248327621043232171075212578124331458129960740585935182159276767425552420312728523327108393885403567496330390037263691287519724643071011419904251749224712753841703247742304242241980348060554562896433411472064397663655573581393880564843294608728598509338196176485143099266209148065787689750733146389599507144400301501744898977308074484201490364176202120168305083746746061660533549815924433713027775538982492281201979952129462202447820249673996498150961405615909846110827955350033769279122033317862636436889822363958348237806262234259173953352620018948078047585616979575359725299158855542235010339846554537235597443828410997579591668138940766134354940537800608155189579783446375523321351417406965555898250980568782528818969924146897004151402128479316811960973740857780667961201498595150598277300319002110494133273863957632836995238645458987803476179050670771904680533487813777623955563133786669942990059717540477006618911478906448819579502096304792962618005602461139808248130311652015557493713421315316832291608770263003127872094191427974018018867748377155183896778444852693080570732901140774991559685068691504832691144349174265498658871700866339321177116660626546743999940754657447583749696417880180160123729519196537875672295289338900134940732073407172325275275591050249295186241772914424267385214596611397849781194283149193954713013722451662121137602361122952694672181692974662404722842769300785876288780508522001081855639680561968195333204233044446611378853543634580856296281964885077367390445161724190651990979190232729775369805498915254711499952151824899768044214155107707920608421610779046863922610652657313345795698692123189941936656531192919720974292410266286865832144528703989041892584844979385435069646623750940998431799383120296094549263520714369912896092550128704434861136705835683684332540878375829191234543684577911543399390053799916912436394131442468729759766233941575762293320410631981190253917117752130081927598692212827574467997049886521338887781556807887503744185080634208079343277611818662447858169217064457072078946585489506071548082959740422357092932295562351197005213587542142224606991078803531709540424189053425469389283389682800106367728146894818831262960771146138080419165999849455140649747647194532699528411772398289426902572202097137130942180059943704015591584038169287904293006891918870167247231110722581507148234884377701676813278571314482222551531071765144059037070931607644452792481380875649264069240041805153557735634274434496914451396794966406092564088388417766422170780226361667190620173879813244707358538891232468354651018237980592495292765751673244219737167679820641600411124812897899750113869723497040753044937125220552749577719850315813732423325338220656732400183715045719266154644102816698622169828909904048859864418386325246971280816556251381592448531061899860113723047580868203000577213480215442661496361901858639074031639872687181464598859588385192894962429761520541191100154851253298724356509620813726549110189088689012675141668147573727837231436891104124534388515635573399890773565327765221755427833579674274284636007674299098221728322967973169089504005654971802074661072262119469727551752354670322474541163076663124280655419787102733797818731303896326115799334350700366000956709113161851630714437862302850348032623996039720765875037144089947431715486438796188343914591493749248720060776775826613968824944445148444606354642173540437604036616924047334363216321549348678048422390336968150651181233777321457964394181931356147300961442513816618701870702028744462401922760247585076895432480522889262947176053924921307430565795965974607014571685680944813298958342545611054165488998878569523434430926644417593083701124210313109562937346053650370376056859726277904392418844030208826722929759058209802300883447943111152488575289407357813611074538477030004479139885895142490936288011741652552798054983500710078543832060087902473295502477112089321416861610029948406181034203336640603087937115663225069979046185155730877046439015162840526647027480592970020975495390166461507255317120022103970123881669131890896102182811914917070960793827505927689609990793724780750077995089490072072044418896375776360549698399838323190099448429863932167880880508582575794573875915068713528271497437654014027768152784077445802185174353123014212323113708713320902630579664274463088728905060234471897187160598196946267532848700605785377573052978182818280233947497823072238573391074994051924912779070841040427153603511671097410591940094877421329975998642682507654521808733229928572801948002812518173755570144023821814567215269369931608608294241654403492634882829644363087252117244905823815714430782642988994501837098179565445752168058262839494113634489899807236171700117563311179902176825553813818460593934067957907674451647277949120617998727811422629205057376280242074283163322283206098424655929036207415282957839781572631371457502841398348753959580503469262412181979475889582217114889113588004851073450711362637051331178117300058104377918928842067190708493554762302947959452506012138889887341208756623879745151300010886719510482514706777348734435107461864016486523555118300081491608145135948403304560136421436428463937997451696658683998259271658516709785572663016437139481590483942998774986051352917666095627464318172419965727261412907559236777754059468151261475584075805015288295886715057097816982632514226708426206223672817923063451664169026975586266425023107666056517944888038833946134504802982408681745994795219652202574360541140608453983011339742269677011512002036123355242825679359097185510336379044598137319403229466239329321178490064239759966835235909634192583177243813034588379455285675143657336069396416473553385515802921894199869728326048226697017681858102840857713191839325350605957246332826973502846281113498917268432308867075974374288816410558950255659969790339046675677683276683886504406947196730166219669243994260407958741653264067844161746865814910893921028877298655109457677377737325346456456420155162972152924478666607820198478947111386548749704370186812723666749157600985101804265516991324990659555970751779925767370825058345877443566533141007304751445690471631475799592004335655898075323095703919713198993227776881795428478856126230812683334940160099308011870546920965567674687789013796803536241040187511398913593666877252884903234849098105672338884842500376090830230502356088111050818707421232535388856349300286971616187886453754089487864334957807726643396331513162259964617367288345109736991508900077115610864090303975931512353735259154863904814073300313828885337969110179695048004336616824610212177572985982679182465139619994420845837188834835257349570606203777957134249784569288821407085476958224806942574278904401486038867372630039579826423158843591824755149240621199718509555772939076067230059232912054902364923485228858863668426311816223817610720696773283366978072242018359741798682634181586665352387500416105679825380329032836885408421845365862063884612451709869137896087835693250689692755089339832971099114757698014363615651087705582278507855896124801427619286996458493805811199710802894746917837011915519303231699532111257114291750613829115295634894160588017133441847679690496113626171199539167597530414313475876198869256341892775987332152660416996115995572543711335004912905197856326730086785662657608682389889375758180414152502376483609872355079699868609481039947824450378842428863818546395989149366630355951384627773711109310850502635172791966304895102466924028567607296393802262396980785755940663081462709894059271770859820149885716989958047253294559840233083934147031085735659630797670112268693059367381914835179228941189467688776472690576745972414885886455226213644595234225770362859277433408921473147413719142672884891246813532450068207633423904466559086975523087918449970222911133738233143966952414835177096903644811076659313742920860986890920120696544299072430714949267892713525831020104730753172390899970646915438572365561714455562629690917652540033586691889993666533203138949979531305451916896416435123589978901710269671946239112955627350431156671064702664993350409984831073267452322315478109580309564303451559029260927426712479177429472982413384017887030601696302097383648622248717720038233542651866703067646119542596164086876106146739473637812950585153677160158996482291584437562149283078317932470308570287103334259010989413043687278625172983338735979660011976575264638389388116666859048842180829638007015539353929907126266501307808884816219269678574806379315157821206861602509676137383987346566438499791182022534135189431105782339223083445223415042837710064792323611559696536207195928210018762849555473816735674131845273428520431947189987837524017591808711204815858207491131519551958920920984445437449583716006211606296079771150248973258033698207236593877704680148395217480399238508735616230363377820252895016899268713649579480526003168527619394123023580979272797202477503409756104058187514370076270534840772111946309856756461971779003826762339107271595623488350956288628735055491214948470576859846111033987784454285585772379584274476774477807370880570153499513100000104715862493474473603217515054742229310933919752124289356106385869592472757271089507238295505555883552611547179635484438798048036239870570592623842110340036959975271150431817104037447965868026047870123754363804819347716637384547755357247617142606637370692200989597823946739004141829577526137152883502567321783174405746148524808491358048831506213026770115564044759561291062440451369785625038942794320358651620755962574614081313319994581810227840612914314539752961011147727555035417176519378704563739179776868196407230005069473654028547131000215196017029725512974088802628767219597239825245409237960312796213748645982860866562620277871025818576804710282890545767556838195168322263256732162530532743333561444198912924751880590273096173677448640030808596545289705761177093243264282156170130247118652807696719090760697160498924000717992399613133100106027806713974284299915825677064442869767025517927523431460356551277839335847101473614764629559874754993961906939525718818984599646238963131054610752981756600958323758999713954962283467283574227901689953182425006803975854049970774631380399077138628291792542635969047637684624270268103865684444219617319272033100077945469340010463777950461564389072836879318934844651052608460327655452137907976945330864962968823324397241966324861997619815510423596779110329047570788393412240687920884670400133925119762531432806347402515278983814449228939396305272259694119400935665817393630373930861240911595769886159225226065401927121786852425814032655873394433740034486885367911448611744794947134538560842374429724994776498943868759326149829345799644576286689138497196339758429377187816537110512020274610879078016915008360063671389534279070750597411001508575484646951373076548226958125240970090241393285854541603505679771893235399127179309165862843476030825739433069311103012480973065616929763553095222540793402766206589011477461735260046653016369580444839969867086409167667557074943234102797468104446804373336661797572617150486962681092686421335749037721819553097820039313479777448919427809777094229293348483661169679906487936397015083645390557743642131443307775494186813141227142211855809896656994321551016181728166212540037920743424445404861955007318634094298681630311834607192437631969290317453506757983416101944216038024342763997060849368252491848350001353127789581006019119712358629963295662697390931050540572574349791260810862082291285177532173171739999377634817410314780570900681918766130865033169643527766835530682147685653876313372830289428439577924680720516493187032379500804110359251171323832549926042918884044438184008638867389185062135689854103591499346724468863024278444771528288573593823625173645861890566352033040809478724942731126999951906155855087816262672117843076216455985457099063301112747129401548054857640833844792276277733945497004686635132445032884847669702208770600158014553035173460828625674513932348559640345452336020751180388386674443235884960275399082472221885460102679445312188949236585987042080449701056022265713558273891345479873287964428741164230570540803349236691680291670856915152666870886140483924029929857204340091603708127194454519428263071519339436080975625727172703786249211211084530178306942405180958969135654839503083832905521471128732448390829262491346419351205551667169226809513842864672315427103186391624091718379657388603188726645649889552647300858377139617570213720796174241991458297464748716378786713142048931297347056314075411039380505244851148365066119202945608826196037092702498575485690662496953024060364948868303243145946882253461272633063131993872073989889321619705783133374207807355348329657518304857627931527079030340045447074876129420000977712112762411944740308555355591955110134858662761029077337344019873982329755482860347429565006965640126670405275177252649539045153587469429056903019379258144706958659713136526043307450734128191346139761230806186662932643369424022704779146020045718961148649806027952753650416213413044654473330424177181363340530203256267221446221771520242032681146377957091724071478965292564136886984756125664756191596369001662412319165306302579859771202190999822479189885330778403273522576655676892171774179280588229070908842790643685810391591429324704141776815940775158948458807256060229494338734110675557909149574160233929419779089053291189701400306549129618428537026822053878024954988805211646623631344630647981513746030487649045090044507654954576743214606178666655850415314738991414209758142573210318371094782565296802027002103842681293456361704869019145053893937844889280391453447123759788081831338158924772189908918380257866106300369417537959625378532728396774172203223773092282713422284806100059962591472300072739533944966717968928661345258469100516860252436869990005735865772820044044794261333620763438826924145850205987451985524653596446306284243364171047365157405728152780885331505238441714931984606767374890752764211782416268987399825089024184837256263086414853618708121912326953644186924542856371325658972955704999822056618563235623459974029618367833787536794539279376360337524075764524965727448388360254180320636170606884443444372333693008660571602116575354711849837566134328033948294140759158342930275997834187212268900317673031832837380437867966977117050148228192229676131161009333367706855462262708577431417511862365473923712194130208558464061005740270231867146440740098442680652408041191258950949310874627106590530608344022897667899124231893381355602818941406849107443277952582129235130373999499588420404303576197794259472323857427588628205734710268718172902535073525982007463642341778991848315731862226159527251067861452333727999543428899703834109256857317358581947548777048109732696836949317970315877103589565423448905884830110679856565249175763729833893632773385072302506458968966355794318216242356711558538510873294713543234363786241539566230698764290713876425805297411408083173007449417205020314143311130644253658980789828951496605405303040347731753649231070111742569833241772432153923887559935260531091076661031412513484894720618415257785566604133778671315962332484000453037854107056182775054209569043448457396952603001476328724040906292289242945616945405623731437340578716646156028859690273340815494053570562233671604978708235507168614300748214607085053993056778500224356005579341922434142439664595508828876459397867583813017940798404538864994219884901271075762944251994338550073444983531522136657249059368045667665982587735053464729281112778699189317724180661198980170964949094478485181684754794673291298647273047664729699776549943895967215715964133077859097729307016836055292724979857186134999160043519673051449665641818767225966790232437746261194849099600845891990844563767868680685167520127166531091340671383438680889021193445022319825955668609557320235303320646315779585616068102813030391260413601565577746827604852763783483004962647090559725081279130158685273015594166163549123756825667111376087579910976145134606046981832551002998920096215051706928486593384468885768687576951428905119614795591142498475121018005291177250034887464807219741560150483313045545352435696877205776277617861326701537527648433400021307725860478020119690696701435979237294290966696941091659943109399494051952972719308230583688329024312503270337515700637529152673462530700907585499156196133498832037411861529247644828353198136041739483359606993283234944054798088774900326923015005423519448938658285639322484367006857445458251557922371124372059084891159511753157003826182635086069866488362492921549032468683961224894929731952953125979384530947412970835342165344578727252944743409305085608018154834571799694609974432311333325048073825006811844035804091734070604473045329580096181846874956857283709125491544456623764262887725053304209503790250648359920970979163121554919687442831108807515555272591211802488474915206124974194770411046482814708549540467579732730919602001706844994556732533454025256430073300518319439750276943229704291204884542671506331907301915579214276082322833974867960832689290609556487842414190684277567402732531802402222291014260059759118672789041117669680823094030128672814450112193982081405794466162517875138390313220240472235226335218107616334447843288836414789155440268897210968402903430429442383115376486154563450620561118074320519759523365088971361116536238555266818021223842789392368518427449109457543890594776443041819510730954747339311990944993962779097064560088779824570646116443158749428555338998768419326537359678659844059666427062709149634153089358075727790048979200925319068768914211282189164506310882237496035192713227492829484311189169797397357833503019637170712590910270693708252771468362112023072304836221397162209005189162251606603835636750806824135592340567580222844731437108795181489060806767832186689493472788236855893606006934513730912040030709137452736967101112494494990593679494247492712580640851550128067138349573460227973188428392524601678586713976850669384005264408067366562188973916649155264053184343562397788923337463941905671664047786106117804257609857401292099178565232875513612758699260578165004542841919805238518824378952189271354674763437662856498739927830596134485092659447007234959431851389282550538620784427299177453181807871233830129204680069731482771838735746818098597322407235540345519532909139599357816993082473581199308922970169247543822367691656807638800224727930232355595699277254530659430693852201564530218111355005814297819519300665368124451651822321287129024042842104585148131836792527003930488860115540838763125257277493682599823950474012549819658132891080137100115211201156392160226125688468558565670612785166665918784575816962279117219667311723331859023010526981014244644712187903142946288395070178288524925600166671229846479584653906934655094604808370461208510709607276895399210162760906238113892840970423833981799757895984157115887025791072479529833299947807972243689813821374978254384234774259269681226098173066439011377929082471721313313718076449438689886825857678924399218101834422874348452287513742623952809273322103186908915340869700947728402298958784656714850678419823687554599533850827166953688047903549381406986756243119526139141740360701504675738800994049322615168244314869724628291463019991948430410882234055348503851917263072831687291295734865575045983451506350630276304115013197031815741289718618207868438565085994858737382968708827697347502199554497949440518781558906702948319855369817967503655963551819497124928373862830292117686212990509569746817283994068306677856296245853167147728016438904748527676947867737097565575865082735761992421948461678807310844893766260420109334267559833494127146613918668956171822423755771533026300735895230386503681107005565104313307104642457813001382461039368761948520642770048008035540826557400789039821005406654261285744331723144079655909469813209476175785148111136674855524481234980313509656119121770825418829169088822746284415789087778035650965872111717001551919205813348148064541036533150903758825336175199440708093064902140309442323926259507442182418449062108731505228768366027847576944572564593035913620869069574578640316364693276480573393462242316262787586471458366453220221086000207704630830057692101049774276301894201434895140159353527144829649642763013345795710765444537572484198053497612149106212795569506043106312814206372132000755219210374960327459022897927466786016589667311382054490787221730741350275620902381443347521163428073535473856433772431138442573822362855027959777833761227651721500641160856296365106567666408369783826051167572827184826450452913522334662866184467943429598557024027239968700116448927049352735768369998530355520609400856104430086368794049791878117488293954641596333091721574086832172361401558807749544175445023934596744940062832580281213858161874950332238620195895168692039600047864214639674745695359492599485906925301731181590705880793080638707186153011102314451951858305196025625814959236225711167820841204853377731500708343290378521709474943719051693456096959012927970557203600967737417351684101481792535074276420792065539508865545743416383475155118588803246964131336736655602653276308144323811994297831646125580670620212656255269189355292323425314842863585351887175762334954737631536259591119596953059066817938462867409748375290593683579071212263096229915166717874314081315120351965044702010573003882472924221087221688641079088889155230645986795079503701781830655624890165957040501405793486446502740319353905477393501922956386943445034195622533904565844604714316403594410583497012520526835614881575743375604546884820729259056482962253121816080053937343904080469817275155282474866790234484935720138529817573718942447914615383550779317420028499135179466257552009274092141772002492831354901553269132391874739405070394661716287838067432364736283052741566982059770609891981543655423896917462491730382330388759957469161323925370620761474351829394667209096741319062243865341082066597011930985119103121922876184230262365368743308460022566437417003348914644646919889423774620526439740535370059317950549898299466144412238497331711356541443629380117563638290100795362702155757412659189929541339772950012115711453251911964315523381327490106469084616294434435479275966170598664107004130739680982611852919331486724258084054654567145933112726153277107285466471975609891730347486223597477392430689491485768219623137702278623672018919319916614808420807970105652174338807486445036290950632176974261225144683514809862944442193958999032572451382334022969491265903646307702573096532225898690448880717287681749440858264884055127753696413046335985964024497903126277617717920595512703297726100284178423318535675639622022878765085522033883680044218558597624088800261503145279371369002665866151554655791620473194544988208155984426360835251837125590711971003676578559986519689562760485968842918524013824347158305993049364869681868008317961835210882645317988858863158577844701882001595551997021634565500859247043996012663559813108952901353408995326764691007929634712304309020457399603494387375075670053921934490340869915399108711422624513223866814531488521253954035443013244433157942248896922508517057424889477568280013281099270705112527147044690015169639945471649001974443167368323226463697979183174670454660160485307901338047657823160867709464341841641996321216337708924320899023593604686212119553278625492519336919079139860478136733510662672486406981877437055830381176561291746597532508701215247904618265068509820526376253530050598410000789877055165965646787731353727886491296591324334604273116029628420508474837519590672045496938365647861733871322111553369267417153232153523107104621497945089311922297375524293870252100616892789610832278852231674230229972156713669486540486039624606245985858127927455653634761182775501640712819298975499795589305720897713621603633521901697165533503257060906945405056582881223774206720270433912294670831713565768798165642368215080856534852330849321557361772479463559465586364492710189621061015857587677484863542811150217942745225295899830301435511437595772341403871289406811222709986228522697794721512608805435347317775918065158566017839158395683573748378387199695788671330164971190591220748365298008948550497657009764970954955873304072503780498306922555057056499588425167617203691255322807589974215998770026291666766951492789077504528605661332533638654053330248943594676694583749121723571462149741768834972885370939362024151775716686344918879811861584504194484559047347227553342926356941494312341163858038019569790788590775240762340242541464200190666168105045431037635222241339066156321822948848066518494290893422331446722219380868174475378270592610746727719575663375222378404523094271039749363904648834151870734538633271508596827498865350226150069285402859670191318553165881299465374105539199676828588907583918401870498218508640809437089455350130266923149747155119312723687266996474591810273452588894600620613442956187021142000459798485345127891049876525611956622353949461002283575768171999379619366164491049774390301226798860043449373876571778708086624260189474211271494624616802050772750288655040097585671010427128429318780395860439751874603626970015983076004529456008001722634726654150750316739650807152812879930901731910960561307871791887587904700684536114946687889398593348533653984985684410704891559227398500742859861410720295723905743779228255822297523195924184052827950197483840199085988720533984621615417301137047405709275097748293548458051398461708759170590386083824689398791447861817614511291967390304396140941223333116611100236336144297763327360948975761590857376326090175823426955723585619974181990887293269562900094047193509354534634046895772457622978034552660109199577887393976441255049291921736993500282687559369043359507203009041046594382303539771153430420963381020425679349964692221970614036084092284861450163407633436946149167009216251456123375669449837001357958523181578336801631165485828375012755235513467488895644670224408054942647245172085240668582229532827813025763293235558032014871946174673421850917817555466933908501047928564318283731148122320813194960717096941576918283264321767256828448444048110722502307914846035636588921247269481194368387162789797483915160435595677886984989182143494904979082636684330678229258769612154377942517651569599818618755542876045092116397438369209413184050994077582444773400561114102502206063215094650742143870012401833557260409226747825140622327729515578211804301058876734715246960432311978386286412252398922056091898446619631668259499985023008085585664202199444970799895507880549730254817979764026537593080678707438490933722279815946368400446215793741124927566980095169048492199935930460415144450938767509528470130480803208666924164087548435723338589193316839097272345291652301567819278768332882597128884015923999465197734488169082568980323086862489761933502072855925189749330066188975905297894855474411091000802823393887869691687125923978485464865767306105026111595535865421214280184192172668397741446559077429012010368630974679046388349862776534539805047164732825727047983171089425899625065327288155063553992328006935157940162842783252614295218048711244737397104642387597857628036637617069145135943948750555078232525701003375753580668938344933719813311970057964685929452599765300408396589496727054501540031404500286291564409684228068479679893471502866970594446217959000533777791248087114366182145663950359083908529566109347769330648103866938955039921412949051124268536302361337831776660350619461785415730590002016967540062133266274782877291165726124866277472304438649593144050059358406217050338502048669094235966696255451757837988366663167153407509602589158554185744009343294069009807082024158789904369092424787006314186214117608102020208405874840898849925600333494781016468721132662556582768960836564721070074102107700796588083992085258559885745443019168153748764066534079359703693089926012141901968514578491400083412143446110135828701222892288271419010196125547009265476317413913262615877758776740491623600155734514183795748142712740260756952155587212381358985568538698977105719227993598939303761997801188957329566749047887272649702996228220464249425820411886641494580243436947993030423619975631026033318025872155832589654926264651161496215307242285868696507380503356387104443711289720301129546250078562856080711762901482447772553953769031515166473011415327522968162802303991718090804272415442394883418166106675470357873799261544059306759767062875437267948006216081238816129545936138798066264239392141536352491036587128494124637630088664446670054801431214267097891573123078887101255189946548768101426771014770309284426606736827252120413181887948995249823084099307502517404629287990115719343404361998063893101391679896791636059983480028908727367702057942259805453685473646046470632976361668770773921518967087117989113993962847450688014642240605997825832030501312251259235073605910245387997594060952011022210954133605567236625488236844757863852291024984895411972812889502860848504541634706566933702891230484122487492688777299764464294231099334109449079933451764551346510800391323366146754898894741676413530671627666266011912710944655962667022327318119266008728216337153974751250668559322597506738341934725537765619579633015020453312897848093691729440544200697636001782323243827281379319396568266115168235015732290153968674286929143945287485304473558126388729110391233135699844977636270649573198602264140516111856602355145421355968424907999610977353426260964625699340257779527242305674129654921047139777234654390411780596160583318810842635121219251249137768904690708701171760774455152457848772874763248329517315835678476140977110122489574754248125866212173878931686673391764946168465475899881778197944065936062631538472268353021897590586973123056737344801043112787582578904690566604879653568652461859181648626168270256432470863889630008012810602050618136274445725419860953963527108434409549391241272911611996716578140858657018328587577534348943688829277893163269401193744447618498829804127847209828240443909357516466085198348315265417257944612020460162655197653427688880096322488361043892990640084140437835990613398291670893638821176522795526049104670531762957704817675010351383076047889757628673175252300039103678726347171270467360530964065732305043979466246485440079832039653916164703759048564881523793850242741524886862692859287114790549691474842010264902193555784204034660775691611330561941759082342027637157129382723950975302452302051997641403338778262061510169228901967093018185698999140080672357001981042335414161470733940099670802004359620634164002671370558803288839210016860741172295819212062260922039962048091243515776857111599126610799352983672775186469164290672914074044362749704620374970804462654005384899442939634313727371346045812013667134772893091057399551634017009396206349207625309282081652171608853431671728969023978745346935824806800800726746044017333321107785123599665671933049639390903137272487833484084125997462745217098010957074362918693362398471774690208047895500702383761015849333099874154899199239842197925905168973161750449296645925865462519277101958143704336393741442299551102490519657535732492442588766365632946184319009284261668175184089468678838337473249994935535018472301765441001014772291228716284445034699441505359537613125642776736413541145440223818376029744243020678906588531519223712008717664071461992130784883194909733158077827973323382257881960628201530071065906262653214887331182784485318170226889647196086864251054068405201532369892734324223795113339954415863462086563748019357546007041694181287411597446650866884264813790500719463074566993814152813858279878521762432537155273467179081362013657311792380071498010230322166582613267484578885507644570612406497431861525434549929055039061580822729425232488320772987323854361487405031236656204622478816813393714837788144373009899300529545425533925676367596756439658133971292846312915085769713326440046551891896820340423237224751918077861024640972626947712151244103753520598799473133559672030069816605712437312445034120192085528750943211458303220666566104727586834725666768581760816472285506276120826298814704178745434100941046301815847457801429979521734941226059956471778563728241888841161926361265750176840412381727577322867000489740175349929192544508897099736803452021793048901008692149033268856233519063129617852736908641262796007974178620728303918974530366002041663321681143841702985809221334191108704796641369014754647735334193114633483838052858192225525207310558369914025248350857354299561779302397990385567697238520577806718794858258496308054103453295267990712700578986614026599948822381468195550715920132481980534403888897984135593813147541737211774534510646069370474334446054047707305921428341635889833445188642151019638852878079084453053943626186625099363759914257915310701491869458266227702187605263006541642600909254962933390474773023965451779830225091526577844274264044931153050152059507620370258364505825920091036828330089945665659735435274410349257077537308213181786815354682061045129073149139542193342809176322862355067606517353914120935759715575416192614282882512073036773871028959225229774703906400287639055174172247220419249266974623593672230954026550346347185947066330296311450948034096674556962668134675256086988989939778466998758221660061500488410316395612831171484898671892243252784023836881070186520079309133691695726387597979876665003240906371542241841477625585556256961259087836167380654997233055885292972398351893778697496254141843466662775470226362235782972429027257419651519456667512740073392358004376039469153936574840328385833377226372112165007570827469208908170865639461012243307155231935795722955358322480520823141082339155592092300110419584612849490337670528973054475616770781806709597616839041265056295644122756630327699100933860901268076279971728946662402110492633866001676295319341650172881874001984557962538693712253455499808358921152924548143352624603823763184772034910830694854946369407854893069982369206041513274961351244251797852458074710350688326335682234620378527425182617129739972161253447921528308986344486163341116092383359084588411881880226700662364418150759198817754280507523881659558134868063039242745651666180837942853968883805574042595497228498025976273923902527565264217872210713338699199744065313486703787612936629911410644296609435515142278119687377327877616630485495181690913742402365143326005704582088954270976120695515512886484605361811110695717690518634135868763328227836199109725630612295258270572338288459642467045813447760974703179257700344404565404320103575719458590355072964248402036705346235955225517301398045476748141479366536286134474771543480555086534816849667669626920873455564596588110777192905203290236681592536926789343783878764785294512754053464188216329102444017823198176301238731183953413715369263174779744747812854238403836506547145396907837699290566207593771935727499861818885991309721315286936012790963840583765335523322514286220408413565450268694471442035110817391950040122780528534838612080301619658784851256949750627458046507482546035939758419768920488387488458592728438291022411179626453624778148325960448091624487295420209464019866711203384931233296614761518059142260253686671300394637917463726589595045287517888945560109261865520436586032990730904873365599945500138257832165906783559567519604129296349206856077000247367787370891767456720339782971310965619568909701853493168598667159888512626012528228692495763761083468082479136385131263567421375346389049602283650485858855571663536999563307563442691548055872211586337234895981139019641691153758941003748763275736072461907185266310093288520399402369853855724944366527464379109459151115677953926135503335110015676122836822772064191911543100525919745290284703414798253228862746028749076764321799822193286918249464241905192269206504637664451921424440535495666756320681206569570414979344702860011312161625686962806004176876256554524700457016334072357566644829573975977016036963203496085341370096627871072161718681864492344596621743829634519647469686302712565480946733030594043519823850532260936975935874713250712848954467424351869545335647770622741132989952420328953235810271979333033436789533775430360491087845760940265788495927375072433489413463548065165187828643091851843488274047170419797421480831053715197998502293952807433853260040349203151062102484526386720253013882520179412998650748643111229142261436110653604927383362170329936769238043937300202701300814559245121810472510525290227624028087988349139179766205179215870782071059942748169782726654963053562824410842627095881743941186794480635778783843545656900043080832840449351657149934772955587867778630325752501535135246133619228553496653820499166666613085497157662308260084273371885556921667395492418674817451775335309386116701185867565585376203625937045999312866645709203826731372403294235493444119445726353937197761104907660788296300874970289283004557420787127154795055132647178348071666705577910281363667585270662151023720751487120697843321275755594563853008035219647406497548488120957740583311832372040671228874139983984839347858933686475053704435951827531559963754615360055031761275455023793268578600127920372036637299029230810796219497835393027222241169801471822729661547084882319081226422181841447496188435130311739925565401708634064322431123585227631763226853078589672112986758327770936390583913717263524541472724657961254219585371356883888222808189618258679181982687739234533517045324072476005686337269765816203074486008860102658830640033503049612152430908505916520473535984443389886422890693083637589149865900778491684533266664975157065533560619553543996023544533648567688653000997183793798242340303959792423059521521794485691458977287896391709058738827509886577943290088277611007636138962603883612529035039738824931516150191352137950378988481707686930769683990887005812848158876165701791664967000127628372082058903647710424643090278796627139726450807365920815686899881710634319499065921818779347355453874862795654912564060424874256662056505765521473088806269461308394201528253214812283230171155212328785508843875566220454693389833708453796686301317109968568353445206053938340944155796948556801262243659447463802252848620298112825032799248692085192024300934410530280510687549655742705111512228344918949570746480891829561713608934790780851540897394465417175576658912385662010016226871008919278383063596485377168194621054278742041268505971617679595479210395940419441327452919591774144501695724866197022699081567991907020632596475328261265733955569921161605631685396862191178505313895549256364018559069567362471198250035550072961582509424229780577232631950622916393364588968575124312260749847716591270569149137838375594263521167190498112515855241575342089656549780538313561226308613987510303437916298222583302361703099332053408652717133016629980427580693694728343770156813840127107444245587868107158899165245567759480036550774303537918027057113415811967064967114869038511467494305613186452519555797712634829877286473678730712913026576257530426378200912387557679376669095413356922983494983099294498498152750032793817665008398452532435173077373107573305862311948938091309001848484091511370196370218164648174873396116058102129763265408925913101688734536804398570863062266908198862447205019360842553993952219015993562090599966032121746675529959823637213421656480749005367287084216017531623316311485272771149655328955604980736242127213007742863966994023042275026304242226084484848737570206288870081057543989964294219072429732443347132792537335897815520778241416519747077937833783295172710530085246980013907771249095104138541751598003941093680798671332640228091826274922378754695923165736845715121295185024094372154614335176451851195028640242771288916536968881837807803227537569706853603603731305723442490229181692568623709106988211956233776612775071197123733961080459860510491524308143909927595196868226145892264793964592826453090747687293155952895503579572180676109797427242997638568609932244359657754550206644441675198943485777431008936250500117142760138260925268943749212969560834535436559787408312892900477139881881958339016489143545480186937508662014138393624187706670997089139997166114168204881577666980880903852480209251515190531652595657862083314587823252676539741211096254844679079281257073236056373660454071400524226216912456561079022880114028233917559282768091671376969930141350593997227924399058917424874483530665212691598893943379130432676810880552444055871534525938375637691828452680333714415315753408576848888637443498557272083720237349626093217918115847003416277311346484790239587808483463863454174501997784016849927567673889676682399028545109245858652675559335431212170276218785950788701427963209336138010173029327951143245444521586620448838673480789161951698181962082486420377816182692721993868508092588205023546839882546043256709161071496807203576993040279083973846994238771245902269748180945791956410690770700945503889171571190678873525887331874914645520467614939485050292407493585977847849844485086033822162794708747032421497505167999151752250043748937488272015369073745443150923676425725829489049530435887476542909151017425418671520716592485813243892164626740423751326043258106326193115686744735053007322715945490608770717141419401212711131470708752403492779551947719326627719949629506594579180856670538433137514575336198908276310421261065239091322840841126873992207289246237343463643686824565545988232555992262315400176302228308574626257763588327365585692599928959138695576306665757310050245223283057746282231061895460486412565330475429887967290058963265025561638843315670212520203532079407643685214146407962242223093798414130473640101495119316719225334622414223643848760831878764639295656602088872776788861505580890790455660463030880842128913657070586742698173861955337453265132612930390836643151059827014856465012131306614653903466756452356006191872479508540163783441006236476657735428699756999112263610229652188416833476865532462164237828605162858985965075822262158748686012247827206532010010173540929295886000418366634295671421365806502447922144218688872332694606956591225655455761903048807654070439393008296989971532697882026252294223196428974443110867274259650373927700965091312947907822571501361345661051137937388914610883604935392371786536003599768005451514212848508196647767647521676921178406968028543148552972645301313724991959543870584923351408522856526361303136389115824859368273577633067436021948278942476440830228522653244384875624941163239341000988781342121132215656060611437983306535648551813786035679621149346431583263443073124658943493433054950475676689922469410367165720542743771862358918588531187865109301692326465694816033960048715774771332408005036446661432929246731899983034723323861691347740160569390680134715892763313328592896377542323759901291237053969442515986235513776217204047180810698390940081580813333623397351993132181257527204355968646294910554078787369884404748745153855364239027633365561295122707463705986720774066223117310247223197041834980387580871158544653942589140593109668677458368085118433789060266416637400176509606305733513123749673542805496461070514897069763628947720698750636591031687603915755207571172870933847924071015711196526606635943031195320595857436424858212280425404067415674996845878491667908500748004822130165156222458781577292654215859949462849711372630709979329058449699266820126749619183828378860483723755881128718134724189037434473995281469215926446183226544691628498584465947534631764314288855382236063988301153356228191051124903663498489541792241531594879473467634238552481568476542695836618786267155401174962653148400744863086360379503984667179296306126640390226661802446497133849156393720306416815727249116855727669702032891366646369932723262698686823386056612478276383773851945326450905840090477951922805985595505567138484541383763008572840514146914310173044139619256314978691202363622791351893832537505329311477944203090756765553261643944725305564224193136421833214299162795932893178718314755370040644987873419325432421419152520807783566989230374367905263693741520894980586794458541053064840772237660285437424184079148212628185344443900291823385378432076829612217390466107518492080424397090305945812775956809246542175999182361573185886627069742595423326047581831160659168618796057047205142806704653722407601384593829870782014815061008634194368788569206463285583084368182255304163080566749373345486805140949958807084556760157823618392570340699336523558449960160590402556908279775123581463800758666270270407130277661548305426925623227424471561659682350077873038720286370358454693242175998933915687571554298164712341563862362409459390522648911135302414472990775009339053917919904893991741014374390064463637662043739211055572441462981099607996178758828078553677172990249636299377818471896789481253882232573713731619154986934225634261537728905063572693941280511847207158872804879747030102828434175639401360338999499056370591728554429925009570439589528946604470972624387942202256577788699509987218065722493123960497903670911473218514400537323645612746501615055843052716063613879722294446419290963464154337518471449607854080628087183526104375211568194701202030285841380658678861073416878933942660573036346429353010871841555188761368658902246019234492575176750677161406410395549087684957721707657660795760395935813951270672268982807068743675863575340441412876597875935581463306921005136937072751287636650293857027846271547089528670649172585213634730383806710239190840975841605034579582153882885876903414534277620848699980063651642507050579088385006809545790261034606714491735018204882460203949302388545528306972650663076553593383132840934083336259714931826028635735421938030658256639943192435277314516438600741434981954681386877249373997050301224531529922565782083525505019442449487259058522815480370135009792364237922083802009042692028345710594889165847740005391854711537985397756622635465007165618985717487192399984534458171605042142028747910997477161589327215549205356421840398773183001396573771395598395017104060352520016485879608732619617464172027632631466498307356842036617381913555547667130187675349667819602557342642710411700126863380443994162986437582517337842543599535135463261966232741882455859328345783724774282415479847543358486465276364430366859722328672916882701053301669281579784565979127193530919355946089541849951488415868110880442003345504734583495030870479795215033471736947520802051673392965183657044686145513144972583607558535802949398395483969661290791241737029363626317626374550105375186805430632133938485651871420368256097059769410577326583649548968541033963530328188573967708633167248540703336676641273727094491966048968985665659563952176390143936731429234836582669107122275572288298793409094618396929052299412929285653757931111993183742447055018321626577495734315209074951074421369113057627208358387700157994484781610325180432639844305993916159148097373247013157115579570962052840139451086716927984859800848345262204087034390432967823359828385375652436186000011300539137271415134575936426252181290565392633486967214076536999877471282529119338652624252101595067531130954617727448599272298940644102013684149353131344968778947195081688584078475972368323704933929802934790399605109777480735982626874594944617124914594066746620025121548389626817449599082598627686669318318129087070280571552588227057355522747928913344486331784925304437188638084913075435377487511853602534095406374647393553112497541433936235626598998748051024970193020044328099457941653878504052217015631579222657606590384841847115854596356106284772295999346236077253424775678724763580326170303241983559613647345525972611760353518445886703032559596870029774921411019607092011483287347279967504880998099549251912548589437899475415504655852152357949841153913773485684155272401338399817780108723412107481433923099069633351232339446501619624487647878844177123528555149589031200709847502590458769503777819195535076463060447543750991817033638023941095279920160968395574976993823134787036587980292470061580972886556478454331784084262834298364668069693832316561848162285443729758302520098671357655221774545987286340728983875087255213291693300372849965599036737610675618555237612102427922914197047397861800469605943544239886317197946642182377839984727793794642004653921527883882785470937920733781007473659694865555051734734409394565989097427504168457596974357541343664346039952833026963421864083689797421042409104648430497269941522338302353258009234887954532634578315982164188984668392939257377742800577559411007536108164689489257143930805029955252256820734877102079139683571359404577038561177155747606436664175731163885678515262921210734734315657047791665773375133770736215259087760875687201452244696749749851983691767326927706125724547373810169391148073696486053803072394149660926296505777531022101948222508582553323434855566546362742481813121114947921950079808140287066220356332723629558449636631664933357312309717707614439004274879820307131262867823854958799784886796633090393360478647762929241287263822767789629695703224755378803734329421338736717237219307688625501386007464279598378207262746094254934587719673104144368718866806810750723445958648746710963110388982508942341895751410928161455061035187962400577669277085314999543423414059846578474456792736280632150252579494723679099804144228833234458221240429844118691962506569929982360525385586468800739879831530413752244605979618370337986345082900252327371341944108888327653476031760727187507264778471958067723776838305265277827363286686606746975306231841383290826806611843957319008703583293960152815182448299665987952264443862300800566456534545246027105343538165398854542674620107966286789857246756678910394249502269686339559059077212285532858747444516707993038143343527785206979750718771444855547238744299672967741833955273829540425185484616969584753441249960381384650081246367664070934782419869487075001294129611052175973059016555926356039409367114898350684572361324480048837233497604604142575233897987292383503283853842873671423803442086538930445344231569586560964702801231283508136843988297373338541785526143769926744892021369138383735920353473516083064701713200580799061581262322260595246123385250405944333491468415059731962871285158320141882724732752558670679501774750899150370098189651082612338485319076234182478349099318957959233783541298815222044652979414998334275446428506319372529783091816442198925420585003783393461492822996368294052172105329933231965883300145166015741189708572930682076400871273270118133999609876817541549150284222337709336417504785789755417371302033328804234425154658783876715777839952208834350973986216004157600504131410236346815723808154660476307203980559209566595452479949284653132769093252015001403517800051077487517231383516475557860335293609031240416963086969296317234334128819780626605009858407220124421004521126284158550782704929095313851129894392921234947232008337943617559005389892060609436690565830897637157426223777254605637783965920391616536459173912167563070646832748508572068810741109193559438571573934491525721901504125576106253716375249452332931501697632397314031670975625188360409548590886519426115681583168132260161828491820048496763485934391240069278963740313601742236749984878793750632362628096069003015318687001090387631031468735666071585425777550087398389597375664146220021871807688353203955823516076736969649664987181572392919083997173369412429822093130693498626222552806980461540691457307349688950663417928211903390839810135776563495728695737170698252819215790376524296179264523095294961711020227180206285060828819941334435414673756846745300233494803475437433876322781154459336452276187272446026484016742615652880646412573178771917954257475846461934737137192373703459941524719975297105882325397241979568791469257638287582952606823694122896829982969012305522070934233338250353295805813969638038497430445971346351807553823797965914726044517639000181608304545311222272746472952713622848721077077020626094254643419818933799139950366768801743177708360728527682015729006569810977848231615296936144219841561141747777495685728311879415143873413658530253869133026347135417508868639933837920345258265568104760504668994154831814312777884369756108281149918437296286017839415205583996486704188559743538299932125867561175422432579843140185010575160120989146673219583728089604183888383380265982297230967725701305577478064084763018619715968987141770181831890526267789428229062627894147741708464128433375057512152649692951944558390828420988596964601615513003817111420493519724689398713184679662161026608014007512312893855094857298558390422848425984579525523468240549245137611516964718215449236163627780285085857173364351730314920690765702237448612984806193127022861621104205102012657846486750585474529434611318438296478073629028524659288253405216921166293158786354675990400592923330918411572927802835985463848678120902307616237346330306437145228701376095753482696894562832714346734337089384649582400346151774874837107285223491254016469943234899392349846543151953480302912021546537224244830849418386502397802212859598344137269984456048586711997917832258834093316311476505685969187302102413335943392729918913451261776304302246057803808351309522937619472928231125154979402546817762373576199026798540367874161290992831323072034228925142656686114448445473671816505886868729732342733692885912622457456295777525000024187034565958102206994243257779888838022149752531655234074635451807558333986590567453439007836521810091172401835837385998330948925159305033603901229175492299804413588359925696889212506569108721080261462373183764517403667280402548104852459817607619269030857657096873278248657952974026427025855134531068854417171909047182392542935030220594635539743069618430550271302108715280627167872239386409832682806104533666855144432071594396586169241309008331158150779883618598568542379235495978385235238533864977369660705095555726189699552294441813193418299840455712557502366309444065098377217937628798844412974244896398846998320566360869156002795268775792838784458905493370265075812178870992131420233647178828568573499716053553494441648183753082002346229865407052655525038632549495706874035434516369389202780591358379227516473218293829490445687838211574492624097994935556734230775006155375048606367567862337432750026796661968882162608282923333336872016426676946853778699171012836821790184117188245849920380087315282813913603700041744106096321121028416524707923075380747558114908628234597010907993827786941378047034465327256627363603966395743306920150416289433100762288021267980149494269954739657654567982612068243624532083324472407477145030409157116240410159018509019865572025195433997925548110736186302217523871655626616251048037701989912721279235638323538880434552666214333058941659006100377415219940647503535894594814547529165599778865351649183271974894429605580219582998980246036075089385842688427565668085562860601577012364962298845607086452736371134776127587757144419860945550583936098795289842129327177244442009234505860373326556225593034831231583847151152335512568676548654475322528577482401349487332782068898842243374560870612623903472887077332473135705295087794432431488784089983060764141802176387473845706205189260521943698493479896939382285969139039645872954997170512097101442390876778589122264153851278008149593356487109773079118184136426104431724562250903888694499847489245395997876275500219888307323041968925261525085786041620224991903545245042067343111489588401835538621441068876427858006293575223366318376086591494987284193765045657304109346136558257343575106984095792971200558229231099124851408789331672998191228366151172044588469229484021659876399945824680991984714964157550462025034694334007722058840480079703258196240367222605563611226352573356540683180761503490012221396330179271126306809263961784814816350508482132416130356151099246932673323624285373401885265092212100159455674813863269750782874790071521549629000684949324891574979671973520817424029185942268837094866488935358178833672353041850169458770230030478533032114228419059686481592063911528858035871909942148486276230320008478450666306671138476142672282389860739169989061994738942740775237844420170670527475612447948920927016532474530048772963417393828255811164388135747407808570226936405919617221107820711616635930595477404644537729327807469767412114063966344410134782232506286624316409953538877287867583194883954172643139642801545518206774550309472977917235060774779003953274819483705687200371245612853060485522440468634029491873624627276181716267098386994567676381655397190771475769559807627469393608165204369961225402643175973166071222398095274563994489619771957215040330942503297810579829325242453347788470215793533469150417537822155643123096560044454747547734299170056525923715279480002591271584023632044899033391994158523890741370671091101746184150915127268615296301396608532345276775103223876763809487713639266395612923908077864220394842503767864025465133035824424876946216434532183851224402104166773847355305154657148394411305467835308315461616591230173551937086748560462069105493553735561022003516043618619767238745353220012529006180040826640687538720743093320953196469021344009861261993165673265564285538255322596854948623784662840151359665665715499629332477781413226680705570003993260980608426088293530072354686257682027668838276098920031410941049930582549847454174456346917468354103676184250541081649292222434653827818119132978377877767579069403022619884471380426889849818685824251475343006514212809669771456870560921745898081679859517322348576261644966165501866219618767866631168606178956453785657865878859815844885352884321259600587094604592812835622708664171665335884480938987045065502798209795292858031238663711850331700038753640810008081788453735924899080939118018753037971982330684627055576948255411135375252836446526602861029203574835730233043215025815973192025385715959852398780629584750632627408094663686582386996141232203128398987070396372591722871642454762618968372060288979759080369494021757983070643848361520121121573614080838496481269823371336440229138759902429861434935094905566750333320760325610034268054851295672134554271875509402419334926899481649136929900234071628211952959099440890633392438170594275188499378306248208772985313129561363400181569986289051684002871555613651033400243045918674424507505253105376626211430597674519687011213517231703344237727583811095116675765590719054305696340875192660613771607285787073866140591175934312282502125872316292295025562173176789319314606252718551413167291465220584682871422513498804884375110607369294995015590573999520095917453429826940547702878740247131978852728296391924314480209693357761134049845991854588961570666826187263071180168618181223577126906845101222033397126198592052267244467343940540365452066654457479443433457601867330983984773468710559642181583896985733328446826957721954608262382056214653410782175298124420673970594415037821866128879128974931254864814560431965282387020494152900225540784879993125406387264661374547148053225687349168347151101926241085660927549882252667789037573825893702242110392346872477855055232235784094020711323980349970531545952029286395148478091432837015282897573970185550755995512848401861543971949077149706269412553240616801878673235852582223338370446786519782741897417048788144134464687164360209323031278451506356660875805627505635501684065915400082209414896094332693469160472931630862579509774296202938461605250182320135747581803300003926988724501758907085523313844904143130929845636773735806858284752002003547708853003116822876911804726763564641991668606941679249784913622862592828091908216775172287472757841246307774972994291739284431629779528658183468175407088535029661183446531729707826962421785958128478328561333036579818973255443798801666625757805024175075338990660624522465053528501736227872265776478432623210001468239898017877232725650370075899552803931797137168344014880743628963482812447740062749198724385878124393545358936601718672595189465033339805547834542411832805113990097440792597774642005188794067934052099506176989073354758910378222959192309513832884273235078576901308578221004754545535406542917110887322601419206666902565727211037922322944246631171203171803656942006323015139823142809942831258101738345920334317326370864585157979799871495878062678308365158087249537246192520690976163143112112780732240244634247789230782846570208422113197084054646066150365108757182072641332669858709549280530290844631614288905253484781214473077591057311173150477782786603084535592035400169940084190384918548054232852465963839316725074818944978006454215510532080207700738360339441463266631556252065674891945481701879957476670781299169013244828220824279370865432502671717382913427013957869023711061079981908668811225349041213237765569801507059724270046587597445557786654176615901675744400449336522081089964626925367745314746139300585266764376517453572443984059625965925377397085454961417476538273567625678774505368249081006479849687978777902113462084605945957611703846454726881963608427125363760371812788512382786493334408568373113020323177808352642697848645511588085545984784008205691585709276495875104306836526857841336002209690875739618408300574820684297881798687590091461722403594950858144954308401340100502758151497422057141021889571653525559479103569836988035027151835116901462769773084720249795301233341524297366986631948222308143850805676947923988572842805902561897977156188160002902511031121316179053350129681892826101493975489817949187108181468975968075927211632803656844931498227554072605153697342532063838317019296673934802614040945080117949634741298137458993090264406644417789391926482892242240449381381051957749662522045955280151948777738330713797805651491739723459414941176710109579979365417855674167774432582443768213593070765406812312620100463155751630399990019701349851452790775634527601586192925535306081957308536359835621477361039887071880057802710804801237919722365427559199926258168070794537895958192261336020236599277169279632623301496957743789216807750894885668847293030299356378406100515974542818852845513911823366514697444923109011782089664907780613993923829742961518766005224460587174980662629389286249589380555215473665021506926169000230692278175174274481127854655224469924408283908213130679515611754947187659876884000462089412868884734479421753390484133930708130164597986207833695814076888197839819776153028511002590273341004867839656621093276871479857392892779158501914761366630993768511686820483186038486095753898502126376603694376357222073794224757206053706672433005065361243017386099884275388010799019047163921683097325535508116154995641630379926073692902112038787772290595084823542426630004127553261680925611916427435812260612778976341622633532076556174440917808267476310911290589748108408735978763114865621492347423039905798061377917606352565837656436241120365226299932933779148730111985618889398525147109830448506379288990297850606977700141649627646161733508773076854602139729575968109469057292525627269500725423234158023939718207564044179863808051117875876009374366121329756278598009623436723360743216929254658416471426731990591477108203052852325002389065508451688221247354391935810854463435467699313456003187809481952577486187497881684721006322690073089544959803026093892820584649441582194396717385510536092880087101170178007297104362468775232278597654343554380842795640077518378358709233418270799245568345136469628924919855062114023482704048670858373016886190765204888849656348467907327649134720520471570515414966821614616968688523275230508801597661181780845921447477240110486274539062007567688148030963231095119619494443098592617474261495047508562545023216918360033680282582526905973367102332485574968064687770859537600832944870644644082630377039834478139825877130427434589702804982355034634753617377763062019310111740066990647798382828699335519994437610907019899594239738823228802418964496181827354967603981460081288054822869817956641392231413648249214373481700604903007696700127164423891947937729179645716581290905456585656616696863993877978027481549427405394258031708847557148028610389562042870541099796558835527469617656182322729435250358896224266327551479990585854369747436185266159756946136126104460793682292408958414444017883719797187699671396231566927165635953952044494702475836095567559423826962949994436729312945410888348186871204629130559676933814880973361454477446609958791571992234054582606330921780191351075920989934011467729142377636755757888717794769331871436579808808891446456206119245762952289369795687499555710566771590824583377400079570825821585658124216960016551301284287804943285408449046569786249838461623061179058037437290291028252232350109587211125709066141916718275320866237076459672252126630321721692506869076209123945990223834167104111871948327487707701087448097783587541575980425916202133457777743610109607264705434129766283179354363437230576123511528247224001163176678344724347401327119435843388389927464976155430667598932641011308160987484735615319803240173143985061888319700492479514449554342874340474170310159226083999957838069140123102380370110356132233022562607989957671111909762145355628287545814335320507573828572609490521916453799576043118142628263746855592734270957751881911425174257323069051840351623745663727675747385583696837081051892101240990608109550280577970171306720846752905851914924020493519165927653546725220832613822833538665849547588031204516596855677065922538094225824227091539011104608620711906530593702126641368625770790459709200469735851744915296980088828522980509887124283274181448253139004533791952179857458182395645619778899005214567937941115878077409924901159022372417217495129965773640860904285263909362497378038254802326515707570875967841895690728787630687466541745929158935630591531837524523101019093184305954487019199879679882125763026633331993623294890460237400914734702179322403537626896065040662165692284060333430152074886302351741751342329141312410491498146033423303370053486778610508222730128860927633213007719890439060819818052110320953379258609616450857296603396945905435207308215090424690899167480694756514290853253801566087646581887908525157908901699092434610737292019694730175820415791988185880129682074066395464340720372429482114572507612515133455302579096951248861449997801658866178271383321583053346638153164729217029904511732222274756432096427434977936261534287821159643429378815906047600949567734827873792849132546373312476859275002398915502602779806576624639690218343516718523646009000035189170582348363514993965944437995602800134102672186793510260345157910113257576787960997413759956173951023735132197169387240292082782587369438937604843922813642949904741241429772973266484445816884826619978225888250949863254908572741023233464272956023805700593588649925365184127146573828022912632796879716719275443812389047051543689726655893165520563883499972614513791396414671938586433346098690760286479913138003410951570110246163578683060626973390990955092985007478873194103225246691252073677823967860601032781800376748797806805939102170098328019634418481192087682937890862217354717353058780823732012695631790286972821313674569229211054040201782827817030625705585818290658590785246212658363860493382985391113335868213052397788969417016906557123928835778251398941047093880169178505341350094534347083540125286091452032790070260393493746709340872041306999666763328339199047819193587727560925521398631782489233617068051647779176773154957157568477686913136331142674676092849007332286377417093484256215755822928510308924048895524431769242456553252180816975647191229962691255415207480627522836704713438694810929186072098362027753932349554958630457787150059271488132620176810795391890881796801299172180368288340970044796453431877493062352607341630171728598114221981082827075534983265322219443660810486092417964682511913551121910065941871446884813545568436317256127808021134990562792883817772944965248464086155648824565566704636248386864640390592347054368895241312011654150964360943470567323781853904157156131653375763508799044322798358155809532364678662128323797797802626869379454717546363880718123930575386268809897626059333209558905754723742629966712648715489522400361158538899045086140077670987421077303883927260083488058470851870978353611790893980671783469389187858266777586180415681584656988782627936698721493707663750944004961922037916621676212365838065213027604456947512720077035420765356196538881444930818684935132786637590858698673605702644650504994417654335489699976999855912533821760238613693547148488290898852518569967400582920627232125568667040704800706698200630368855663776459532894297745835651411646750157851916990527228328671849538497829928986334809997793992014484247718100359292016468267918243346777342410836734782309723404644355467945743540332747880321922189359879613032673309307258322355786107267942464600970642441816715650107047907953752326755484424399586933962033863693380135177179246300224229028722170762057686462537707281376233185998381191349596281124438347747082206080514805777503536695726537140027532255031720701668411059745020052297163668245339135219659084414506918385304257396040685813590025423357211763370714921308800210881312108417086541759519414543553127416431276788635144771409003552133875450745383407172428745422684915933097122765212148052848986812603515197345481088227431474431133497173363447737840264798898542852784016679235783870993943556754274433686918240928258843820479882577064793200713418606838813715577221691557264385922750891864728786382774814108932234406494652813246138160884624715407536130456681670054212717137705288222022732383941878360085027706013629656073916949688309504037386179711143655862726184103184126765782800016287368845108917555434659288167932691131700029480296215613064089950158218360609324890008618370004203390476617537227345554374216128141366266988916883142767363926396901552978826595100099630746130043808418888721619855043768685256725261204837050323045260809597908957334697976351639831363207994864731843819170052098950070852784843904999692428297641258544107203616216047405725407279506665388980630155887056283505852568018193433847468454441814880467488881197787096252563877472542494067327191470450511589061099640777917454387888907695862417198893749687458083212956071806768510112928956060745049561396452628432101748530910975672582000086754463325485465097696633756931335438181944568397488634645119632309004682416382932491955723965369646027042572344951424102319034557906940253984868587164537835008714101458599953630609077022381473787763986065981482142450180219247601142678573190533170124361512409792795802536689297206555525029552939215981166104359767000242020240096264936235581984695578160641332569620406057248303990971262323556696865042545083804461009031490215720004229834963621259320604856556378924125565623238198311484342932941360397556167693745371182735438197434986390171703037824694517439538302130010148260459968236497102802492048264181744306069350020276431154124987124336977611694189326531388631724018322059888954984161177971561440534659660075429635664616768191041144415011685171311594219881115732314816255533919424253331922333264922922137950861408099010222353141584890541661429759321686295955224251885823898016188225270904051561040780834662112886148853914008124964411009082950113319175610939916821662447205015202510187554118732608842944745398855553836286218153402445243086175004572617751952905340432189066623726318445282998270172165752341012748576652068841770619042878760135486934768158531278125304929564423080386312044161058370615925689924315372149428796306929483148344871048995378923694870984155079630298467089752939886193999934941457883361071967150967142026950649008383716128968443156669251018155169429341777260695819739402705751825892010972959301924690783056646199086173558918061757381663873000219626191724685251721608661670382257511061256359032169085214665232668418867088567371760554047522697629257527976293042210601118841801029940319919711128734692706305691282726281585865485644520330781873125776261196040817398421720664428868816244178413643329925643012527224216514981691048001407644349312585944946747602879976383964054730113563461916978041269139074755202412697562646344066392317905567435074233094585851628323966497378959991282167960371284933640692758505744070901989911866919859579095057560048053996527977209202373873758326611306390626721443192988305811444183485732929971987005821860599946834369280961220741730641735928017870494980775826026482133497487120719789634364496455665214159886426449770192482558040669885450734474228370621632674510977037066605206022993698914486331336125888689337455036304522705541576994403950136883976455753327181384695449804014565885436282219108770110829919945787979175677837397625801081722426876462631848230825390056981077437274713426552182254959557837509316111057044069253175012527118132739296220318902148542535591745876836813341693938225155657905873882245567060112512733002688213371214010197354216806834607943626147932103789590027777613141966679333909430692019454783863484847705389220925298507320779344971988192204304898785259508042229202534685234796915933142815663442489237140703435905054951253201681102731459220719969181354383309225684246978299906220011293979330421224869485326452970506032294033275465134860860451703092979623178145736057050269449315771165067744408543147266701484476771943241127087391011409351289035083953414641171502932646465023390638497558441629790696720248926090421494295236453350835258937790367628309966828310752154669483649889556673393410739695998347134458178956633853636102469359687732924865591630751336396521126078576997876051710665746645012159410103377725654418187329027629693267700888690234007869696431027404315262252952195516226163548505073871692713721304274542787463101664942350516251992587799184960110189641866459412532679314513832685602807998792554721008349191730010874662292076575645896698632592881527381624494367599914819542119018791052997338894668412438285344741566807609747538986950557375946232273559196250882754621340138071783482814371369001787064488704787579929769019761498294844699042711577550179929048792682964738585544083343818261372053587250721157852278543621528458041185202571811578114879629109034166898535979781703735843160741818430947009147881480804523380804093878355729516634236585290830409576252848327118774166438125203685879407117866469158956237698037948452195748554732511020528658645430340322420502507327017025631635360615505964638958928680360355180702478403657641443747354460089627499367757807643962084177279945830805030623152388124135444883525068229012399636896449620577022626924811134689860037333996841686198370158325050801337167682372491844338137299005906849278470379446983323946803286032119097169221976866510364000013361111978439446050842931460137537263855052555430274798759711392944078745137941635029340818219845999474658059905098873522967699585331849761131367705753432495415348712792713745553480750721828219006091169463117998134383386989565745072944562920901277730486213197930897653539900724059928603258168330370067784778750071393297246982006832999119482231518168947866153596922978548026148305808752259731344697771141684565112837143534710795706431382407286566506714176376204377148529426986169581420771415044545182973085928029096949642785079238759738337777060172707931490066584990212785563671120593785871304643492326072091117472954442579226642862505482784713021750152817465772172047970303282754519180610207584198121889433797273419262422274969040922110232689835383753379212094561153556648750372012285565126015355406366881641831802134420387986281925166123753876480926495289404699078619130456148702984437687012725447730501495557179424825411021758298987461279405316453632786668786474848684482926218825469402729275840231997455463475327228773840227749201563940868134347240012068983490826559323278411094727099569242656018231208694119617854654470667873732996296853581732194615915294471153977662061918795972798331509752364168984534679652385023899640885549109078160992591122391666767472630282673511852456605382580613208282152992769540267290139249703584824503247719181525262954072348756726425055511165833167737931246037697592498132712341115787028505397198530567171510779723420916637205433790088352723523138454269778767261842735979073940685179324475228199193197015118246131698260042282557838718255393120608278735639308586166127922695797180707066633281925766398394973663161874162460547461875375210078820116104488475220581208414997500672144494168823384577249032940014356840785276310838804911018766223558542490602374803525100603796401126277522619361019736904852922310753315357449976242675216374403663828978286603758769962003728496813833922837883769413020902075587688341196252932384663046740749504129651683412811328990612697003562747184481332305023574972209119883968583336456322101629296757490387109236162156599585450500708508677079629124040519395879230709593336661705125719098904425030369366085282447324519390908931931497403873948723375297501970514107724245371405268341100820386703550613872344986504505964571816582046400368824714235118843909823252627658849280104085371440690011338716701503018857203487814650145529082298861947287366418432166203804769241711134443006578871902310344675697880836998902091552982170968670830315334878136338566598045690656673959851454915804754549873738830855170988354692469125990171129818470932005057656552447631157548861148290580778587838428064313646726071690063653770664026499021367668020558432343395911646261748176922565017326486031165844083413549797950007436931607228715606229040491479636639623769963981475234709806481209314376664196587304211745048782830699425400334431238684547506839431444504786648604683394836945504546907260939831803065924203343515748721816909482606634897650513901353305086081738492350160973100933025008539221963241887941433675966011053032017299792902105467717446340295364593784121946152624686452318166665956650410415428718810634087855744167411823823084598833680156593252333461008172356702152307404956320637132209935100551543061379474883260169857812404634427242204113117859535196033455861835850885725632660296375950941225627668528270943206807858312664612980405142411100179085846239451879640012017724860285040587951412460417623783167562301487534200674107916060061264210204205021259507208766296524036918315672857091380525171854915537121285250624407826744380777944211876435311375948744695718870630764885702021284901385053668466410645119115455699526823384956814954673196752172870819049996869993125158344508579644203086381447195448727360081265139976612401949185295573464701876679626903584221768588562362202671333170821995238906474890406359273558890388512501606056996663854257194814162288112380206281434300540233825211490728662651650748496994617679069783572499482104353131323346157577964547056395005718384277343986201873707556111124109990200865293501902538050385455733443582069903879364718069586699182683052767353558593293112977195855235655379365977398302860154219976894776003891078597312464625911442484152624165607931682869426795278847414012436429002345062584295079554540114086204849548698358736789487476690984675457649407653735257017293265364009323500284599862943898371668915852191952064923564422659700873068437886336139866083592205654680335712516353611508067339962728754902884279008990961245015179928137202876714894985075850445205520034980940716322361901766712969739382783475783477727577843133617347348272158649576329359083824004529507494978163928229947752067182331261818313259217503578947795691905018657018288086442051793947846101509475864895759264014400334579449727128361493093388074172378225363868823150689475542245435286428885503669978757609939664361360856197186593004013475433635156070276317593353419561239538263238145898676003118017409982642657219296282227347320851956814580005954142466994503150211895659435469067237256795968903217864142891663445630693624171339944426910801575259404937619539196396139063732569439799429979766403610508434889561576913903799773029265422356827305879291113785315668936503252640365990491703151948995468405274896237176708446089981031418589844358726468769049861612434226649487521569033778368205001199755834028547651607989059245723483053016390343070153707685137822280759578683378825318403157069513181281044060250756415533002151147347959355311566557389037358358712680436320188812646090849931162767269762326577752708923713478202708201128144507913628922973650173018345282137149866638538204797834769001627671273721327854653034099155839369484535979684436005949016196386956987098500039352738480969269721203216352527311870075330553681143410905443089280102050792545793167229710282224369229786843537885402758424887426906179402995763042964715946489179371438822547674553288546553829711116273030008513724809880825731252361842517675081488712871224081725126079198557862086205291068139723521675274488766527653211445782806720735131650529825911729252374294371953472543738522222835188647717070482662398040447548193907952096339312317082907213264576106224668223194608058501952205041069064337538878505392018483118801804977001404648099890608530455730872908441792857218830885630784101053226567017209720602831706226192797680201677408510094322421648652177097298220796654134378764208126184093777355487366624039420306412788564500684740308198232522085620722838588230746248651870230598066160430919048981896108788765954039429647119088335106387997036119158184647661188489373545605163453138253183645199321147081681238087567825293849844454043860083551185288975966810672113369072000346272625565166657673959982025777790858442561177976564417101880268645253826860268471717181884769397678154417327699453350789647707213628563112412591457507212787201899124014519985333916900304840964869175246428594093159055216193567396851416778660893664957547167806653526497088385610455182039495032155156624848196529640476539540751157226352990302336555168622543070114901692940203587468991977396969040637116406136414645790651047299057742794263674481110624784364170695314525234671500362457634319651604678131490023616272435417913387760013109500690494844696886915695624326359716803189939882365614702198637548190367791378986789753044979264617721274127647064028588762500027286337527125907772633417106875578926228176071926961187748645025404440944971870443257412019135384851365083502911436930040272661428186904945553107925649535646556597406690967428269736654926276670790508966228662150132546557063476117100096110257980813131944185138489848624518874294711576823119622931546528198720092187788386166992318285647184493465199915610329055102250494885513702601750674364772882162239727618371725864271610128731845506219918386049247468935522767642416845887384481002516142616923156005483686890478673726390456015525234605088578412857596739675861951364658007044478988111118846467988121837283050112314997990411865369205102714936272520645572784553962256498369976224077288509613054484179393209880719732042808121697944159164914327642229103783680784834911605916960978429476328498276197553383831127365251018604915785190892510204619376166559869638339888878425408192882031871266707496106252686898731559999201681095363317606054173318808692103688277027875600870472685611758279941356398832220385721964356418411997665389929595474221249510995164945977395202530576938406322429588868445393263004010863065483088351846709912119109581258769955184698314383483939650432540794106411722215057782662582142886244897789725211333735270559919147611253907901778955509873849413498200070494483500609267695559254796855178910824888629642255539045644918193800781397679261615632651356468656249874125599788835436720943399081300468083258222565436155252083096640415825768293798006331902951520727513980710328154063078582368336623779677410418440739843966516711303594894089127969505538393842367915163947472686667152577606156123225262300091966803408936500989881479256089352532794803100973825490394641857336340647277839761852245014748376953702483213522803263905415360969099659495856776394112553653052949914501538778794876060202384640704370084065052100625648303387110135166735816285637744598020638717459813252579463116624407099027316216317084148313926826988531873583198942204328852110305561436034183027157228824652077538379395917809649105315954882156142964128607344430311960754926541514807565321365083737594829984309448913129982686898794428692823354345072868806255878482526867468189431142515843529068093588907665698251648384599020140445889071391286284391815152259653569372007046457872015247916600382823919782537904996063740976462024581996320756725584236701921536919599354663259963641357095378307973433579694251969078219501211459495533156535067322530770464434354004858279724121138719043255957156929048324756800196214571929592051670821055121510524346650532189939290017975327861578319310829863571666402483651814864935139536401909741718907390166165669623195468643690298487339152294304241368152794146052524801892857845037756696742522990883511734875131716074213975339036686848585257725172884083683292536395166932512522696050678318717981510106122275254987712444402571786355113426625313458302485504625108031276720105672309827138500534149337566381699798312743124763949108780749180180042375134284553434759067359375664657744239906548520971479833704367673632939881113612464380432809312190142595465042000500287663269304946487143216785934670767560620004183580055731459688398838178095166595235502196932941526333908803758891091899293616372890800747381898794802243517362035044827666663301411840016812444982311154803737569675928927532889032751869468684398338922571490739256420178837419844126858331582110095457810486602987262303224234837496289733793885259097389603067120232531887138291013009879362379869541035624422272066701605938092569278226823980461502954102552720861940569502992714475045824770885110089213752859745754726604388207139538146472315927929837582415816332391446681196633136751927958277178251307020676079705254126896486610128844323004088544937895939686382032684000925813920861810286552549292805832655129474825543631681595895649898329727022820803442459935642629926164334981913666121440631705413567946925887239241402472685723121934233692480695514397972559435070098051935493184171149352275643412635190335310266419123548118518917786336593707035585217415170593730418623372134596299227518315854863019281053413558993503932088901420713240765103854936781925418830804074053617250963297534898566471663566622159146303692450077975791220653271193211537607083777328487789158592367429740003398248816872651658005823289402219605869736741624212640725753466727860711289622182005014361393305672436849880371228356512856601598019301259353529798525327571487892752907580989971699869593323869162814657448751251643320485596363979711495562237303604608939582843206207320463258131024427428936154412797274575306508176038827136322034673201241425617667173930800548363750910697008928620451764968527756114299984024300250352606620791250074149760964602395991248254254789632079936396508592373958211698760958767728517277375628317761527000854930765648177108410493677155642294199574322950310320212969579532572473059637703593199494712853155675744973796418399758821726000470451083108857723801440497803382809151794371659388576964511546136916620516663083234576530669686150629319251392908112814092135380637129862631176020128265090572715757456279054434001028465136762912529399195816489993308008380157192190063437230443941972132040252711388940680280214654838343714172381101058978216723069993431374894015387683282338967235545601604382770777955370378141841635618382151432339083325639576764151560919656971810947748780137405487992359654564933040909956245718850794069660665230855134021375294138635785924879019807610433164081646359573499809272683270308248459401335107307455158405717356906237763776984943439351612684178334534689622479534027177349726698235350140957017263877778551385584429192601013034125591156723242966093833520347169644381691608282724163544857800636002803602595927224681161880339913790206568834128776106794322731785510001634428185517922768532481553859254621669552546209923949846713404958714836411750838138735617449807269779116389114355165742288482127401248744192531748236124767014029779911946441504841424379764854478634352320842757603550289046076682960483027001370818664446199917344801219061975236748716598844174545903348679862498460643821794952088132740356254325222037121375385839228500226353244892790289736132211821706364657586179211554820841022686366861973329901775712568938729274039698803779077633172829490402955403158875526344358066676070811859864788334163520307361900005004477385809472667117461808307717425240257339453333167854886488291322526785901828176366966577899187845469157739892600174161048257704098378070229461882602587779181528491851904364125685163762295804157618739902814456404358671966554626054263177439923518488255588432142991101983534139545786594600411434932575450616382524067974019456012615158006044047335653074555617286162254599288493220030065850079652554376770694424519650006816266670780291075210380372242900678764618695681666842521338381744531962647872603611421992040308694399005338342764164001810789972888916775554160365802353334060102304667926788131097221150132135842632851675995371604559125973977887297355509769157246869862081547403364368103722604522370556061336415664328544609243414731494885591517206868217972580928005892906472146569851236876785093895936554301223318396610866042779368491781573013316178500296090810734797378873521943143170115431746399453548467888890221352346533161890181748308493665906471403418467504518604380113597006663817952028503537051494174702062769919588265594327735991145227864113497906362609747393028533283663900791859905900872080482857567670662886340001047033972013823012244123757689109490969162693908109307814654473682966801831426172828553188424220637812109585054739037873617904589755873711758578699431455153700623270417273096160206418782226276204071076434136307140891861120488415712993704165418859791525119346562543754330645525955471811329973361178433920158798888054814035704052835569354054073962004697038245104069783539216236250987138139054717101334280210587775242283488083937487866652601640929755522169908296870793600148638921477128763148533395785684235026249516316695094297193197844078088945854415209417886468747213265878402466051098447725440599871817311501329394053597299171363815377098282283595784962433083678673356855651316545616516193561292123562670979425262408363097388899946139015101415214504078726110602759765564002659102124229363090072382897449385622025250574009448004985568640689741889523783140426021335258353107409312103902686843433060043215616112210796645845919225290095339814258866096252912338096382514264127169078533288749019108985102238279505945846900682776082412205089522274085493583211802846860694254351082931372867292680901361277395510944731767443131038272053133607225144501282265583944446119860608804917326508589194417283129937241023053655442585991770484668059737597349398243714060981710722237739081298152597808941307918185325605026761006576646192683045979435460880392361270622159600723108509820687471309103461666359411075402714885258036713943483272140995824139118706041117255921162994523938199008292020065047927901363670959172903793146407766990202897711243645677125040729931589668120256877948867791223341006420503841721639398701564161808457401944433439066817533689219347425529257577072458621326847277445211626238933255654770782164715545012543506210207453627112973525456727380585065296996110809031540960412003374472026261191879468189459594345557753792755994650611681429327233841612576315198565935843133509952050533675800589973738878067254491081282847180255916713237860127632820286759846618664481759488837048120260267786062987559795301650362933709517038086420696039337823838066201076066303483443017881215956897645703974022214264581654319657428131418294437008744715251522622571108359636535537168017356266461641414432037172646806922364404554426526488102020362075032630067606653486389119441005582018313358873239774162211233070438406669802177483530152640102139025140716629789350419611688314440209476695690792552414493959769205974421118846902965139726378638400057857223074269057412354578117080833188074727821241595207610912992337186124476513136067521237582992872425258125401700349400895861984708647103733624601141908183883136487281675305808893509070880640920206382882926300255154397420463284157508315525299637123567684297862891941325881975217080806903324865981218028607989735502297342603999086178927038343297910544611296208725652956078396774126713037874190199262813817880551326347594503482036512067890955567396899012707423352939120681227329384159549891965213635654330244131941464707368260158024897571611596176887698151296268337927099923518716579539672803771846072033458758465818578699650715088810684067391097171628994683519924143394678749848327418504678935960888230640777255319622851510959177962370161529787942258011985449130810673503750053028566580692456576399231510231470622953968125522818126733146558895814133150004266134371059452772300871193379643338721553222268493063357893845061435561186357361753347202060289289068961240361726487229743072304915705994239684244703941336105336791391342570736813639550409044355675950120111206808243963079490073082830064597399423923955415823554906607655488573780621760631266987416755369251730408592006658944348709235078268002231337067343237810155109339496964545769535530331992003166552655430975197150108472211789357437760883411929570530638103601961868061823096250766005221852315788936230989569627745095017604030941027990342166414218546463659339926613963057031774372114055419265586602326090397404397271324168037876420796368278408839972465436585627343702148776876592940525237231973491922430184648287809070932906905179944245553418515767035157446389477989009085948200115749650107484678413193098174620087979972469258763579665835919302237846319308758795406831746741396090604172163401019838839731940850950444981589131839774460802738773127018179964991543961706561585759783596014248024589224799439137939656374501582970131131777412620750163436101172590771654560833390211916052875866141237828601899269465938432972364031294305489379399085128761711894663221222293937940913081317844614909449861951977090086627725783132425881301273810491420155651430509282654956193908752812751704748147094219682357216160730412607649829918811470819246604055892288581808779029610112565036228974322799606767104314408101920561411474360569793149461077200797049342033363359887510877034901930963130902220283135075160901727419712274876388693894891265106886478917138906713281668036679182222067118906654014122149745827788672641172282808722043135032130821920988547511421738912167836111454654223783193859159276693185682484834212822069576034874882241584997623025765420029640935666971098379537598920435607002864068389075922085273105553012735975672744862503802888577095746263755593375850780819862851544615873763161063143302908221469536170469407494442761208384971444656435808694766560195747026872996830876102668907603905006648349544298865309815524893926596647723127733811730170747099485405012791193893166156503511887855808298282376305630766388696155999330536770567216042403005690967081144146416762828042110057222064810006786162290058275115186463740830363208226246960964635939391492202080437471363931717314882467233746072898677414331398743367261711587692176439380612899531140331667627222286705273745159186354197140339125231989579005828236302326421555587019589924405813728531670321834128147850556739380118668481308804610246652824689593166242658401689608345853479813585526520598549703963494615059539128343855409762236580015936662114710165072474314755832849071620977599903199425166024642374088960456217358318404519937610765792864210264939425808962296154610255954480369310659935000018853752486117273732578420343162330445044806033771167131830972480894225136757042619365001386483739220619287381403865796098706064346705202423200266043047386045031779424364408031226808474116362251495853841383338918482581415567296144889797154938631120014049546156964954992192766767490034333411888765118452455615653662741519467173786722874707436970020529602568436946926178959168793365642572191991240480119216524760836757987476768315055375289578446846396951185144656022045103066253053735726008186923849681130053768067415866697239163112474385347332742376353197760048489182620402561723956464591962462743056635590510048866162326089818975492294569004592152727543318822940246775140197999102087775508714313819737875599482899913804216328530186915385717366478284035144577537381945528544986511147517987410392081551940057152872724675880295402223701969889856070804116438917670951143678165459161354975451968033744246006914968898785623029914782914455794183801366159040308189391761730218577128392367564600902755120944188147316525171289180933267818826783289756414764213904494682153547637525829020472568516927842020940868943078151872944353530418682955667668683297205189182462681532215083103274275181623810447618845679097599661913190428023244636686805491636671542852257198334006152075046247297807358704040590921135798875169715051126349043102911499894050884351633498003167804232139707203721870129759849107848774620936304482007952425253112195122436348343182818990474565965429273728550671707964777270694271545897604487480034074523251035730896719118625728132286141120598225473933572987601935802070483791224068115764114770499775860213771489190217122692738116166524402286701240671199428246361174019581450631095592245014829750155530106025959501680858253566554492214660897651291745085542678977224572756146913723842605731521524477591089615873523841965596343466591838407371645898304935648928386573835660540059418641772575949820298052818298978574414720457067169634376343779579557747718791157803933122611129683890394425735251213266212530507399173506514033592394821739069309599981420299328153594853766693941926702554766971279640263510202810704656116016555636359962501123689440144495097563970917113716253826861441933700553794027971950670404522563430805901194142865823675663078161276145611506301947713836735931747200886427218282727603779874691197690270217172629228841008050363622914066879257221468748215444755416851912131742808543567969948739234120358933004630081702389176675224178179059725677554391567633174432044263179947050930366165165342476102474579006365198311043057030365004129163703840429580930790486005044553488583417603164897303586025445954454554209063971205663647429863280191016317456326752551256921385490663650078852104861870041868173593292773107809287087998772767042902984525997307879320396178890407469869474540655106979607405015303786386192965659763717161230265479452724895739141435616794315571831312979348216438994733200785992278435213135345063412411744696460586017128825884470560529006566745259773903721771825460578084418042881821810668795231603473070200643556190102202697414235396080072105269490330246599368662847444401760664571082838262621197773173325971450468385514409824319857106734897640802641975623026433234660988765883447701474484632741402293738003160839932382597373950829683284113142554164227307078571978627038699938548657361817486300074127650372471937150005374429203124039086185134737825737787132209060880210006727066650488295132581912201098013060274181085925773561059342254767447657013371942290058475172260098619700362615322779761781492682756624316388967477454728028304102378898507172308070815187919898668369353109652260270658474320763469993771297464060122864674757883990680165577935531948802598682036911141093673902518091973003983968544286837879462534691407306890963840179091891677696526204431195027251964560962282447637796604776362168492395367023353892223834906079656969049760719964870099519004193758976224699339986709041315860881839220717654847701179903564974725288629213867509351561783033858125961852047308968442740980164096007996635549131479815190234251959385225785373573375034274968076401985279147191672594416862510460809805789743596624015693779097250268235451065397278994339881886569870396862872164832642723987486423433380310107355091702914850149165599416324286636931392551758536105952078073434504820812391872679003949473474201766968513374537667003891060094128223413446785742047170019935843049782387365988874601576992264887322212722309990142943825571844881022685088463057707995991605348170809668148926051382124019277571704280805644756729224244413921160825927295882474874410504158354604025782146170496597734531731576567659495550174761114468987557669922203317132208787726249015707990886251551937156923628781611481278246896416836179562110365374012620354157937055075460521734165178269999645574973328113337974907501124534508063535252547440089730728863356645438600021612378960907732018026157454775470299711681898494932666250126187010838345621548740786402092967115840931642751578614873228583682398331211989213590407880324127245652809485443414865143289565625927697308611839750551563510252636238824813522169244422141476935076554703674029024488875084754315967650270640728731550149537972757440397146469372878352887026478777991140082756858042810340772105996056069747558756000535730086533983003526094217537545455244157781711303233845076504052863874197822912236780543956394972356202966450847461771592844343306121235626390241013637024775811850666597429659359785939526731727626189391804973766108710788157834733123618716489144290356804029131513151417949030849217050424666824001231021726025211030930636671143059523584597223624990735002551759397576075992191632013684246311735073353833126210200599139596076648162682930205069838430390460716185582307122066916130218678888834004120078483212299099079635038269011471744556961413931274904344880964023227549060580502778477530593119550382303201240304226016598268826332439852264907815683059887682999638972426770176510696499152684721439280476245999641890491288941193507121791945715812585035578528200736443733659624357503071810322160949298006737682953701308757005184289891798920868445748756128471161625220656668754289447222877418351372647982840833178289827384392965448234287742218967072597601441591573112460934238681377996214824779150306553661034737762004992277760238580948124133013015167188548322608897160306617661735732453071187913657135238938482999982740332375499798563552704139915815490848554781609437430595721841711872702076919485223625972536287477599107050544296307150393972101505422485552086044150593126414582023980356534094183977478948774582398631083675811916779955741476455188863625406014274793376303428558315420201030945865993447398757064231659933495013751122034266074375819606430720707443612219647229641408701650354794703525867848490214723578533356283408876609548778794539752090958888481980530210815449868562690713181167626848582595533359878519973203421343450635700049891683975646388809745515860691094795490207655171836856197720538442066748503639647306150286390005984095533955171711376538096576365832419064175999707660191954781417052782073339593635670745722760502057743019996009464502544064540788492267197240773461000294422656156039953895031424254377720321440171400868019511841966770852165350282830956731452016145643419584607549110662426957266296307242847841555504559328534223056817588622096395980384896571805056493638905136709163764135532602752790926309277806613710574442431184502569914001577243557080054080696233625237187005921424024786888789200220635985117308214283915994118893362788821552440347816743303141804514353010842574936381466619367006231989453205799375158017056242207568882297405896195046845480813161035541757557555112359841157136948035869659136495279502601970826665845469175021195591568965625147480729213603003959287347565118907612257241130612556532308324811637057982795598796657777267798515961201828817639633404535841244192988137126890276933070542491358078239983713250217607535024463132808711360535255002691376300332733821329147286368051419830075982075969840625074640909870736134420700868232870907620741664974479586988576653321017551118875013636598014488738748715751657896204560144822145477125619062169805283513846000354354048440893853848622981334617920035802614882942185991767855163336543973549273160195207515842529239878211448281938703969290764352641035103285492895902433951810722560539166377676470834551933074528616764487940681219477623825599395704397526984008437903294188210312562746732154498361714742245434008477188451602500631042174328837695012953255403241929895355760026171947716173472683651849015260270694395091489199277979976639395198944670626553332225011495003667794001961648221818620822854778106009196185546049596663704680098270020931158527302889642912520153705639007765507616602631818517247498370311585874844920979583395141423931453229051235392675885475174739727053953169570216901519483600186693457109756390410383280694662881114311019914395682624231039043415628874697387997510096810505950054913582750604165016485137167754075669730210734811187513885726537886157687558599358640203342805059165859941960976530025618232406933819793175805186871047855133408665943816624577390620658289808862046448715088540635254103497157929608616024956592878618322327498957701222884856282511440800061440088197778746151767684080576071737886363177073248810209130878070675513659803488800567569671641267329936226803965852377993144619037473122604262621557989469113336326474151078047885742640653400077908430017903335210936914203494749870227005434920870237969477602190633097097178563997301077467550240392095768251252365040072640231163311852819703036499736185818282443808775966066648780861979173429579170899541972666152537063449903796000291548983075731535327237011212357663166947938990109586613615213509192901065348491742810430677743636265982572338157296862045690401341571560517450754509610241720456805650159721499209202477482877500216571632123459273486777347843038981775775668010276450956462239071186697315730784647739793702364538910743645862112305175648988721075770965428513269987753007348470846829704874524667814028984473737790456462988501451272674881516637275881246384722442747634983243236800885741030066333858828795343810423774867276303393245458447137109112353461594851509891093270995132189661649099409755952008593503214026807781734766083495453527617290467579943395002595186509787638259064384114776998536508334906588455306801752249238111541503393118495636649571630139483452534920483734826423689218671882838518368537420905416586922459902390582043264307667452715374625005645797138765577439721060509509604133077158505248074908868473972267880553474332662721418198560196025590885620184106622337540393465442876814576451791033544551915227598742520335608877867836577000936067418354061149364648828705060864213854903174028614100977019599029428181765649206104415967565025866011781641728079929017326351090321716768647757105071557516937461570385051340287622002155924024725151118036131661386206506162632292441517614663187734670182626244560707587705611645462655481984238498327310444263568131238476854413470847675298329380723240756156329368781745225324565034692291164852050131846194091983803725127955934110830227367918872670547710506898997265585312705010365469895380889589767082477171795382772980478525582286787628786269695524175982096718486650957625018752212817052309768566886513581713181532271255714530744606441283675566547277339219163687656993857475506417557250441847977702937886871228227633753827179755513164400143312838402804770064064915851344239958129384850441735033411343946539216386278377005376683532528296808126806634569844211708548868004328523179390490089027476378595509680866877322965662619345407464580949923495258660622658763351060912151670144336943942460482026576491493954265957270556225054336333663291424287484983217762813605822047289000011208394586233877543040548951214179494347336238179850839024953494710609207805254338231590189930825209873121605062772151595620956610645729329726206589613123018638106798021440651555314413160618159030785257833295478297849212758601437746082216240725220321240494713260746597948259362433607971079288343222393591125543484583869784299398806366305447698697622739222170171480336500166944854120090823287683953037515642229326141238893905150099839809130399378209492337863974844215921717691503068995168785377001525814559946391891845545311644029301080675955745730372075123207016603313491542991105588660542465474256708349468901596630809998529205694001474260319055643682406307641943655375958384008698645935977860433322185319804975269083067800034064308353623615512957793290549948006595160129948337369601682512909003825809491535166716346026728335909236879685849351988687918597601386827609170153148803788091434988359618739505876723800609687056016189860828605228770345879460779408284389789541157306572591064738992416193541371199706736782178125249827992162591613571865879874527094259392224204189369614300547254073789020000742581095284168307220884466974226699821453118735775395902284983309926983048175198536746849103021375953509534606830945746471255370753628473920441087962294361471872837604650641775147280192309647213542659446079628623347151022459084708624546361746569969426130408497536503610365785718578828725072804495342820926698846197005170735227075174541090221657055010121957604517926842395979253118326075950482894861989567780673205773000577061177300975019419227685497538912813022532513500583005073583768925019293655108721876866351554688110489703877616776927978779605309138702702088444050781583783197619958076546968486798304058429444702657160526593414760441720167877312227329931700051009515735234847111864313689543799672826190171951263608787617018477886028435307470803616056062557939860611472071407143343838772603563045366508803168769447182150414795240190987709186180716810065475221212706025565124729252808869219656836028386496893768615456856988831350120861351251646047583335433991270844348726600449171222325398273563822351183743431342745622435058706951254342994542084140647697062239570611443186268932411952982672641719221597959755748202518284598849374477899755304490861772691231682773334321537480588790206300956100404850963860196592653479451178477026219974241525561610358380209032833841470188256987728684774518347778693155637495560117882510336205176119428914274598152973995061965698329633724197086965577049299721982587410218315572769556423056523735206047670924179686122073232900747268266505902020707550992272688247118290775628420480907445176677815082338573086144657008919869881781521400247221537267028812724231651206435865951321538340755677740226933023492972084317325304773113769741784240255932762652384419929917081321323809253218703764284729269483564183251991616269305170305582070372884219798755533422982596946683063582006224199637958966770133598453282024358030310784713484026738264325159940421954390169053939991623598971782008764555005899074202287623000259277549211846884465666643006359954336952765882221266645503122050422957599324740999458674177458555467914588472434404564649602045934085137007698427389003687835052915355619186825465351386183224736447081262618876274471891114998651561730168426622667093817262500737191507103728188516178600266169588394345171618030632671219548797607451123356648572575642592472929355035474265106694646114557121680813859167769545337667255971461221734806251878107263719121283543316209327694244417144864950294189610888651418070931651812349312079799835186980229826468856318394101735003564931938946803060100746022718500716748938749423570628526751518541915366256599706161633434946899474399896486514250771666503979023074497342289121531345451855025712607567988863140832800554924657628482275221529678135132957144619258195091684462511606729288780504531387914117185860942733860637797160989996504343215204728283829622597536166654982106422634687710144871112201824783008160590885672522120976556659488167052050614758907702466697040076852362008704041021099604819346182940735718308413301793260973618519898801151007110427670399997498530745187436965856525623297483263524701910870474320812555987679238356949665564587574124374335307347223216990517561506195710552236969752287618001253455561038836875870979899337364187794765531325295591493157522534486235615454352855065976671679604535675974106930672814472786411923101344204471038353462766329693291680287353469046906059880937238131312272039543101431823673555037169625932914751147337618603917455971215956742975440544178426100610026459846792248344867240770924849254915914014845867383793376260373461170680963425013665248611971276028549507491592820290181147326018336354434395660832053114216635278009550184950014096206193139139832868948917881448897755917306867497927866247538769466926374364912337261752889558576706623575545027926794861451453154015621789446604862027520385542171104734979088848940794233211872913640479830192022759409450637944640081373812633660736369510620498064885970041105128043413309498848494715727262603996574643654892004095175621946895670662142219395845628617173245246137986059645729164943796464155434831376056034678047245648625428430370082952949010058080721230538012062966868307089928741110912908406922497905611833066957355007352481190497272848412946343001269693240407563482464473469493567384089495418823444522312835055132335999840768408235682277693717410601869290218923676260872486773155309511509088152718387644169281915506309649706246111011185072321776319954503499384756759002876705489213658839189762060756416603905706901572075507539370701148824781996030380373110640987971225360639061983178659507663443851799134782890005581560019815648510679037260978854148967198966168801951405412521139071192594198627917633933660614518660181743581307908579743883887357625602693954025053933526583886076692244632158311057951073298374798143288664915805036055830611408921335926015128120848771591481707750142672151138348040629315436643489665360795475350499289256490449469434782967629771505130999969566835202750932771534569877651568841476257073368785700684385410189032937196507685099443296181132052575980425946258545033615444282213645942651937187792195883575823978795518932812362684345440892694200102693148217096407101325832064444266508205444982511007725586306500118459170182774302318934941545334490056874599801341446005490629106358664498863628585671714271007357980827654787907862550442702872881843917433313843619100473164247629960751211420779092040100782491540326964203904390836617028990678735118858817075571319871445712982482567092282109133851846205306926991308923883294301521858979301342633416833926847589266554446235643607009413095030248336883546587207759246854933874502715796118994488998804094289917646899835348282200955751570419467670796843434317125471800214276395835396749340017389906664640716835076299030481457485759713871779794529360335588787226159084018450768827180362252928298337419245091849123776282707089881198045567355598024546774152731651332353917129469600963545111479732533773100243575663505012718347426423653564256339716971519788699938225046849163000893949461616525449475889357905585373495586013033677011006371291377852601521219104359181110225850705698452553090239260607525925827175261273612490290439318035087489938434881388477988917780527163878399352753314051908392638859204555591717309805636586732614537160332974677299248996932579807843214614173491679791690476276975415160646440313279903577091869236126133857711285706423469511887283111479449364965161041255679826670740862989725410458524315733231652078857226783937078635393160260107831068442003736109906148373669080518383534398921270694787204856048912958861516543384804023286943829205330695085348672822443971019992524083325740656667588302512028884382528857291107427660078420894471347234378685164356466076508253125562053628333266339485759685571261487882582624840486073559802181298919151621883090372923281947942631742687692572306477743474063188592738479611960840555815068329899935011954469913971501431799721922897194719217346744300837928867022865676614481977240783446378570033273472756485586045129798187607645720067577726267359602163656402593288790222509491818557915539249472731195563051418179358963699684366723559512720941914437508536504725035732774995330476344124373865457899776187368795870881950549603056711402165745990810988744619372498929915852959481952309508600066727303045927020494415724615236883940616027576151702411422382895025099585060046713445385809785934264568004520251260105414274900108914276232605706764634450324420932187630074518136317082685865464578819665793687843783374364597401888437730115290496534283514949163079985821539702842529023584325967872869616292779752844801103618843453067471031058692974967370763507628777494685054469938014852833265478504098018838874135959321903403374433438459388775521136791217143519453348936596261553991266197624501510903331872959885123726590486022409812455552982524997872398027373160597160305516398147712312663118819363526242679848339442211933981538382136261937714863511533319832190754323315291055744307442469098437374897685391888694604626553068605773668175491129078200680492657298452535214794755062216144080564424014790763918525313150882073543813192674225489266388886270245618575747087785337855766482093630654953428127576352267883759046608463731879457833392645170603619705684677292056800582855497622964594288305679745031389163063422324895140212932498267167817162382988377199128143932613784932696390665854254415777948469094941942552761526438675936236768107854149156750988490304379638732652613612896117046032498391300008525291363672248752161140004317465825703162907610682740782332598086469360351571086965007782439372861202078876193695669485344977574198485309356975410808408571792525722527524814357576876215902088859589155403593972302391568654542590874935796648179063339415711742483411756417447665084976400264944808025006046303710135655219704371188423402602511407424477585612499945070751436291172956152095151886505872150710786670007525378431574744626386366880396546021916911929258957575754013393005734471226658113512488734175193287381986141086485134199384588677908676024813307246957524247527536020876535206044570530058064133379467239446608587559046059140668154043554589078602605602732915263677055111871304531982601484797630231935853626053766279234490681671477301871500933273913272483697954471537860901316257372712910415571892651041536213719833046573097700418147970029051535514142055606523783928070595795253880932487237753127971155102042714548660218868519748394167536726249563097574910688409297052780553873265124951361267030322215575636367654852405259488428925612310914987886391746559518386103889726319877860670688981915207153819502638872998914053701560731622046420461749149766333444209450318798552567041318886294237648460031835634313634823166355417258812205216279720516297230585016855500418491612096340261096152156470096114099475432041953141423486744560983019493722798757344391947712813229494340751023441365601126836905356546739596596563088853458953633445504213104882855824370513024820973865457892981458707475753431138618501427670269844347193672387567663378008151431398620326310691994888126289056377257521967037809704019967434243306950030716598981167789107174135991151487294282814670192424417650136669841939520689223852005897027332266454441902438811166990403026020672192513617247969609742708612074071998918805697307317597228242169900110409388026456498204478858108518113844060428030747664524626441067409691067369404711154558159215424825600249034797147438389559479976772437867545456186155442567495340515118102580371583752149466705641140042444055460694975843219518882036625088424601657094808391089281413195445905703189485870128344918537619793622639474151451867744504984135756805028017385132420014871532232467197890212025088735391643841901045695662770147812526756861675328139588221406295305489821480259200300279297131643478849921530222230046374413102598349800257394566895952035740040135918571335495944172276273987771297864125028797022749919506215885711446105535808514958754801392029428074875553817736898392883506606440168462106126534510355421214409051288015439379641548572576669645703189372071355865081745667718965530648263967224293403578590990591763697805277835203595393127623020583059163180871952738557689041460296424487151740116250249110762473122948644977099660321249793226027390861670423227526525282595481379495515676605905076530741394979310704122892873711681839331451678936924586799332907319377648391554155822101862444777833497467632336746673937744251711638587573374542439566257830006274896494360573992464890406661660333277537526123264857536928148786643716553918895095910690903494402882876081839863430425291819663085826129202970891363924475762831095769193494263369919343234670784415692714375063092945425485243784818382867884777485068551218190338041978615149298236314176979200461407194643897729014183932765705163373472063613560006111999415535702274934692403579652850968461355033464069945689302301875784944359791476208954737332518573331632776389342416732233764032630033699686419521136734798123824988563021138543797048064340463341339511297421896420105261100250298316051002212924821842144450466609004542695795043873430078264327687608579972738104097063312469758905418502215194594045514722242857912063720741096945387777644179624392238328506127350390870298115830755350798492107640478515846461823300349352373161224606010196455310857156437169844828044531355947887209011332246436995111277183820456680212189911814254978929292265235914080077786340597170762150625313233481349723074130879941593824684089227003400272265256018559695519908430677253178740463446001170299956539369429464584639331267412634526666496814445468760384101181852373984354285946060326714368600173132179023632312955454353742831635702713987182413443987818854136650763512206168232127288455561435332972236723992289706303991279017458043235003062164377707124861747601306376032312895616102551941559514031952016519646915512784930106111453502334347952333847775255042023919157726448406213290550635885008101544323802817676516265645206930734115417819518101611282092992536806252601331104745718360710241949235989231393650957569606501214811432389189163689424562654197591757311692164873646159093524305141030509932354104513780963862511749517004325591880536758269651722122995311088083763692594654772208269641189408827989079463547575561754102924528264769664165930844895243725035343128594194791513079958076331722463929285438623336688654918173505696584870116980211017407267849773071642165720886811927500781356408613103890205733523468073818134934191671394189196486758657107382153717403861016442713027413144878995334788859330829758788624979362755667092969174062312247026084817188422456670032821708384087357626727362700147778966054477843338601967734858053903296342597499812624482760262876125103498046822616635200082378944083204071374734425907043820100691424969182905767541855917244630928588541463873102196788404258026931412778708933995399410997615968326745886610523402853769389773871450853994194991271915972196433724614971021583335163356442061138243543465193856306883567432304288555401580340630017167770968052024064565998645030228985747309816876467382752748804012650725082726930290364202298489530042391685666292285846666714338097534704607148520388413924948057896442765534901518588130848567928708640663092454287080562883672602329684099706015054526051435424893926595030267253026606917038682445228933988216788813991525899906605451960396080265053134013540596873445367038954644284638963185560798623166587814857706665653379972175332535298631921538397491886800052016926043082426250755613450162925377910739802871547255559025541575562718488488509121033706769368086336515404674165816198610647771977216330969533981285689043602748108136586118238347820749326614533610162705084733194003569023088895345533935981254864945803447453860398224411182048328935962504808781277032624582607865317263634596064904493028338618338760447526435768236986229945946412502944249509915917198263096826530306512783446236162350245435979689132325136851844662411777923975787278116972961131836621797570208920244779761771839302716120837597641352994016442669102680777270234074741447429207536053478481882860242578067621324430461184830033692357535880231972900190396902565497869383247713341027232218255623699440770934675406483634316118024043618495313610436433245208218898969996660061298064727059693011511313832622787781259910491115538133579675363944055578864224932955301401624487222652555859869046865514714893417945004221888561713940991661583902117380647973862064243509562723907191450502378641611818895841523283338229580306097129671358130266484099815791895041887887205556328515598588845398870248813665007966518694924113405335715565261573600267294050308256114939284500480231706199912175248953724674466055444980509427157780894091051422232182989213668676122334832144840217366172985145868515170452189619810015566680301726151426841496246365035704492054883554826131648055476152054332332492625434310730626264184305236967898342569317770083595828299872562566098052498714027605131618208389576737932390445904732007753621149283073954597687622383588559963537382883974246883825397055379133128547223919897878922842155845461499393819919019243923354286700630283490824633682128105510803479394859609988775224075606262811120718633249651268614709544690007584337886358351832933954095769080825296139128432419509555434174685974049046801329682750017207043623579882752795112838966121341798679608884012044073460737171029152948158681537902251462003294700967940600592893818731461481484818284410319459930756373038405569167847685223040424128230964310658621509434383896059021597168208568009588116861411649518750172934832420297371802650098502358583181084538897032844373226711278719433443466948912859710870842593890980317953441953513349845975318533856977767490155352225713675167652114725344860529409093047855155402655197950021533191236943540564324216835516793083398108949471623550196147525032499408403129020583232162037730332132780187265902457489338835213798807409410906914521158634546665845437566591527546038693211785816788739976561793112876697228930081924747694091438963575971534226869882830352972315326593042581534683036366840870401436729471190954189164414412042527203004669146104654323445718074559108572085589493274334082310344618878801047773529988656985544451867784813634207480457711373518400558628264479867977514876162386317371008280713668362513976432556364554889723516472265443492791078085741569909034996903567368342158964110518055232788004885381690407959228610170684376201166516104966999127620272352264517920970497352057295628653667674479219970467720314363929939464143238672585250320199954858580792994173879595762689273741705156839961950810860517257134269715674251351978116428816727004359610144925369753501358800768554686381342148907447637239575230249543274221010846372566243176729809564986392491437121572689867005162078926322058493623601939355523274225705440478739457679573113957598008684704952919150278129288653156689128752328475163406723277058879820912859013478168741513354726387752076925586809479720462151101521716589188568301988361489998448276307543798495956084801168954308936376918364432661593675963030466545695913478895355840343622014378564530184863262033381471068214713856691784191055355057936247400736694850750150747245691009417166932144794003306112619131026134755717182947823692415776629751663211866162399797454160110992684621672776728707284025219843734975576255900702712650887446779869839919247801687688460655436311667241866895458127665795644070655150432758928033081767355345991968552943694427508994629602128192361666779397909403516761957844442209097278597417519229445486100249202742082030349940290806637120778645936456337013764135640559291030332589771022896494611012626161262103793126160008364282974311288581537860764503707754100734311544046235169356246430968974326324354947328232845403969818665825988110861626853772133664882557067825554918500516785111028142582133550754341549857320756693627065598470017811942765595965714031138349261594355911586000353685923704500668509338110165805823835710713721069167994122090395159085262242118321054947730408115679049560188697205574119558114257475986982198058477440394106099594542391496094670725990756793260774113236369965993147752778556865427555545768658690504982437382810270399672856548288585387158689039942151846046684312049503177131334285443095882072226894623166522955393097893193174007297633171694414028996722857015075446869620559827648425013379429886128559505733563428384654115413025254574595394409578942910791422213199953215292148388420958265274453027122808957311537898269881271391692614988907285611953695803329611721921632014136878439184180843341712480537781055211585583449421582636966680770523516025064251106961531310405860947696790418632702177449918415457876107753135788848410545295383082151264861512970527754216192448541798484004610651584165905974255704529394520412885208557951286204986302642978219616165801122516178423276634778481153470171836584550627386787098668945544908191542628238627944389822566346339100954020567692398686712163733770882162488575334950040145523393906066571667405071496845828562335932126151301102308995452266771048685531704427936692479956039283701167656014394471882128806457661739439804884794298574082202185504384723694947000164421060993455637224893428190075269852480796661520746699336000185013907536261535034294449674322756887512895925551687071614058910690898380550609397456798398677420528011183616421949736554858159819809225909831821890919812664611423192863051200445551468221374988047463257139819181354025206762442959159974496368212432963617489373835184356652845499459494823966298502712793777999890861937377127346533924101758468536578029319996827457091020356370840687054524413508596377294027195819486085259255427423183263036498483416487240326337508215193924717912713893399295028696157920532627680978547654835445672356632465696649789788160309433049612758353403609829727860215843489118593716043624831491667180293189392259123728867419497460720368496966711261223281346534668503937863241396864778051746553291897782837091673439159544954286013253249118222391146390590946737547023165088813794220698619351413348999474370628688311325488612521188428149679100805021527506401249877194491294892169707359850375953842168611413290885607426479400783346603823113535913383848905594586341307946994239463208692012725776258768335305796614512433930541719704382279780473906689291562316766818112457720065853078448966223432570993387520002696150687950681811102584389666354145744859016623953925727004007224048647372429540693748013015898606726331031609186952338972521760486186664548526666890777962566906211363937208656905069826382697104299368971406560469053211835329072264926384703999313627658464755106524492133467727990654787397270520852414526450952960932191389927729758767189199240907690013658531047519007316559071660293690539235018293721415737479487691422535019767489893482515941758830400162609958676365558658190556870367051289428483674668560269346319955658636189254298008547490266243450288198566676810420251238781987145956456654151401333733960070293078680155066862295165876866973087861929524891003284742891356660427561689164543605865766661728134980444520201467397351244208947211084070473026154007203853839121412620766000363522854189235051952778976878788179040507438109630825562583849314955521298891901384553048135246028261965858020980926728608384963960803554856869427779230094427700210632022524043722961639401810632818127590202251981352589305115133301818093764874611592283369996951190964413694898708623622939780729368816006971642487427317910684414786127410998939555184339841103671361689745650810918492661786005561452846861153047836804262838914079702573346769100826727256636109087916619877983101835346880309931728952387528532563974646588813951376124815656468250070288895713405816937146185518166766247835947657659946731499022000847470378173265721014386978168898548186276426794043658724873181302737417223403925576308256550637404254582251229678405956768143690695432485328678453591381215540170607945920308699170313070422907685952189350467129078354553910703630514340486930140427000654703306682472039195583086646824376275450386016847932220091618776060413493493514838518541316068495424264318261836387445645418613003008728975539569334629500183267429660567381221474227245330110020428690785411810797486013206045223827978198522861457087033188964806381112335713550802901969055615825875554250126531071766864084732641591462182028331769179735717617116417506829726106313229288539992258528125670013896678802154486962580957222513810985240509867864622925551703325800429835724066437041874796667718895085823883442425919318157011146193788828156676386621246409392779141512097265347182282633155782637485337446508040536874378577359688937252902055565807812814523108721912141331760234636707667763017040326929614846899323795215997826527193350283044434027356368096566209007709431022777491697007106977339229740963740299257401434945321289246998785832748533823399116781675231309092141247581914224961635503697804838344009495517852168229867066722753553487066240055989965046518928893346637989678129013698278892384181690985924655414731955164689688093140456221134085510295360118841115181396961374450701146684697552128030794113105627246436342395592106234236878633780248910410022166425648326887295308578863072772148265442318604775018297178906080505738347666635663748568356821153533031914030972238230330729143702489789168210036988139904035395575161298445217602823892175963558830831481281011532344666627399734708793035388194439118108757170826511601741270829530478867485227017551154384812718063119788861908530214823248129053272480352579346445994317386210542913084487097219246754628829543937658956669367864096582160215590192487734886631888135377036443534288333275394122403773329746979921916233287478783245406624516909633255560906041891204697246457215913106658022732091632510774772780746642947404442784139820784131030862465823464943876822216315973625805873908949107144409337742109857611590257073441390688659624270587950137359099181516796877896761900033507733155854140668951905036593125224859036904463834801332681404409330029927071013625031238285319909671433790780135328443350911835788467937356668578205906082676571780004056159105920424185780254408228078635774070437007100058795826710230151506016217795416292974758059724913360685207641299162607583889267697920346428125986418805125501283528472873848533812848068531877788956546021320574182479662580286305736614604978492518167561293910093918150627522075545468777238200112106966583391626625601776322395358033503753559683955469280378391805925734176558725986230458223038488891304778394126643323414426436225992873990674379938497332842014142164155017204931552380429911860993931460026778354226255707664809172599479854204711270283502478356810449879859323217892462838651733888433061053536227392453138087593407245459905661139754619017633240731795640514117864101016570776694397779342497198301153905832250231320450104555017945460245774335826721689427452887164830557494743989452782157733031465095581108969889297616876837057806820618791666158664980412733023595639875846560950440971570096484931503859366805484465752499423494971298346556594709234071463439376056322756355849163533715619457358261099274964863092232454649317998592030168042936628656868464913776324352097466526196523697819026807344296756476439860065262234560435788023028112272454752095880335434914120295601350995667953558670129314368424019721130496348137270581760574109628007066018616046576834562646493156796602540868625796864461681281639900612338032451388420926732202286552152985601532329466613477468297839334106748339014746867116119223313489240559546144895189049377615259274337657670797591695513063363226749260406548274673515946023761639158031885354970308247301202569286957510285215897258776843730283691761354091213145297830007783320231680652888150351138239169569897253250579642130909072872508331775535097912491749723064569763003763126917797283111662444364596353596510449797826021668320685348372885565199624730016773161259905762263447757605316639874872942636829725929929254326914129721048665295210381854451190486608974628016252855058874676203768987468988212164830211586526592219507753052378054317419747931144729488767544132284415913753818398183386500855815530327883356740243444408737442564347557755510875548179472816662800515055699286330072181846346189481524048155373941141124043471245400029537686638910842406304489632662860995341317483493155808205794862829035217381325576749306875445168278785258222385767587228004240327676474357186699801917999586184870031781273989243105958981986664776505362815895913883738399599754853990129263962187522515793738228897178734942724796645632959055351382204049239434771718977611479744130259991797142584091973819755140032084771345863145539520013646701461677381900033445234149776087515214771501090456819524287278199992253385630541229976412493897720997857278447854014469199387662184960059696758258928232783227495649425822471619317202476726658112402694066761325491809223832032442506196545080648397088622956850241776650617465079492890468134722358864832426509867051500747590727776206049081288393279587187958329187102395404606581368627152662087695152334903585421671461459462880677426885974318310767520610271205498402657866506652735410969267221950780407863370258138490047878995856250949468599936818388195634396923715713571272563385507160159777303896572077327983957119884026733768808500295848097180390492956080896489042050953272455790783811937640002949399335636587228470218769592610614625456061548967240631584483887782165163667781467828443864538616312737131834990419106653663971061341638944601577087855921291845356384812313208208064724690541522004619553225679075837258500137324469995714603212798960141955395030893266721270801935055719612914446747045236414199288330741527336216545072137963584693111229302147781521892098129931554404274834514672110146889965491581504589389500173157787383317030690548584526727930109848957815534707021031956812357711085001700203175001322248289354576402395223639341638223355318476045482694939854478156536459730886040350082036520219149798342887136124138826145147036457806862907113449945038121126744691131218283038315904476321550678784675539088588485321281703525043011874426552703204268823971333094973404026937793115074015192007922923519435246636004920240848551145041771447525858562432057097149998960334824424931969974045539423427607238027713737806854367317079633441780218465091019252687477749135874948188566345887850099165899097432772552871684213688084106373338144212642769844262351018013401504886285419963370639959469842961720853872401923501954607320598094558074920650159058773408530826114128376573368015126306626456026310211777487826899712204302174936447737306921558860097034928273335722030704915865839399169721431740343617004391545233907276889536929980656885065561894606599038950304161521734229940173609809349723134183381420607986929148135197024781234490789496715285252394696178479367788589278654671744681429501549954487301349509023696649393656146763635288183225297312356618685891703286297565431061833728311915241057379246048188974719245307980303732644976337099610285537028109743598886997204976506858591297123176810150678497686664330324697283649863057229070167205861784806348775768591090763335190378827063118133580030312059951058592803277313005086268650802557763787152068440670703352225067657765147594455670770770989827594162343695877099183466870639351107212399423581944512377743654139450939098146636900333065289955121671042026770819074500397488797338096806093652814548918972327571661696014023196694030240402683191021535782603098926040835675766081003735342990695277864158235487511272917391535760924178071745018146177620503701909588621396252502145220808080325911651788552241955607181841365011489967184273495420421385360395977224241622734281921579998760722528625272751557949227508564946219789667925351882997695667703533446270710995640040173407454259562677926332479054272001133688429465548916327551806064404689534504446338713407834332330224738115257494278400159956510998855475926721538548734035164207508660245177473033003110562388949721064846795475080434455016095103832312998972092493644295023876355376643489189232421560510742425144424532371035456714250041579248393547124247441126398780569938756246677074955935149929156127340482949387969669420076542971073773973167520307734812360349395374283898971434409143027735554026903417110554882348452249322951757330514438622865276498742468349186954258789265387913995154284729806197209017856735588936557032096085021485775058347497495514381062140106643186685800508328826253200379730905162756642402466209657105609675141534728996466568232197496221496134886093066662980906402129125775145427014165753845251942194853362356282743908374497862388634335247783594514193742053029456022963641894740394600593041552330422179665384843452939280083395126509511448265644555072346568453272924128235014989434689626047770614317633485662415483046037079880958916745772656152179886004275894489475053428165075700715034277063774297190342085611408710976748582712202273975770973504985368851126225315823191210549232146650149618162213236068194122517885011506339329395016836828486547253817165040439073255524192698484089418828533549352515034222548286981992491197110171977003202597097760405242438131689755146698950076228859572264916568691074587622656529401073913399585151061600505986342873558421805942083820188349317115427332894049761516395310469907030318815586057371027226439010355578284139987080677995309885552028001172341021770315526039192420806268685644145146248918536845707534852395306485941188016459084744019251963884804676353629066002298047284268332532404907199995096648722603024141726438910558313402676113455213187951304151682781130252795197021646321656934045781701808917076702823244126783295077221092535483488227845786902361447845613732212163839586943495113053447251437894281448814226767342306012721699691243079482147529392858693313652053346679935395684155444572450207811312073381545241834115727760332105698640877368662538711102982759579891955368560593123752955985481041774008454050509233577108942186130891531977182207812882818496325378814911583188808087090445034281458349926998882382915750800202968646110442406573324020953109180183669175690546339960759801875684481952598353540062256744171852159230387063362443192765041360161533686679064217490033975820743802839424526906376163562991738612240818696640235337546581963448037026070883325778965723476492050539602350592563081790254675328171045504254268274989038890834901227097860911324238752972911144476238424231900071698703303508908910700758082926413978524130743264769725531110339455358000837511874157462012029922279790606814246955019161630664371292041853261108710005141190507215469500007597445432837079334347598873402388839006690080406026557150158778796498872895150302443825576242485245584509143852056168237104638257807456914449121198008291961931882122079701919612981162508983262451777807717264834406732754269071824959405023178040355344473664377959333041541876140234005959343116369367645844693859075171377746545014620545882991992849768472390020161970247529251523610455744030502716661309312243387701151847926426255643908511882699744660642135262273875970263272597269976579334843234089349075098915837523227588670759918740923713358642217479576384695686491434994479643728095641260094013355698978064520161864937060530839685635731727358921873280677925709689197896752042755552625231505976167883235247296543245906120422233065211448424396594023788002081656291103728828643388986404579790551616363674670393961771694500649687453991361896796283510194984473624425610600952934216082713286656747797373078472750183147541840702327534622483920137884441763531536487023420514672393209123626607056022964999154743349320142755410607900508689555083831603796588800190765210121723102744800691324133417385855247226507380699640603055498834235320207635229075637495516093041530826769935075545264241303056826555377686303243965681234612192411143691719436781352955064437235692813008384327871056763874557470913021530326599062441336462039635468716716813490478981589107859663009935578263113139491190770714572709902794863917521392538290363157771250103221546074781954849282729248487905776239357388473385265114161072818661250572338701438235602406782523567016386490899936084121127118776757150636111358256797181587455380639598635624352025119918277936239975138468406967007128380562472790112120810274829756516149403066898921404111096424613476735692235949085665148258592383819682657308048576938347042625680485225890643393467786807410078186057846752979518269735065900175736396694680833209626029579611054080207673102388056676200951858840854875876366595314578624508065062203484962357491197936172073799881883872798730619371278074366029559940730543965740455512727370352336405936022820720607264030459992893496516105679061899392909370799988430753229237415744094480512098045129074435792109404728612480337331117613432075925423710728311607799306455078645281954083111066036087267798181256494401365154843929246814007537249367131477746346244511431770642120205918946969374023800986559176510355705870919041809364187416753847918499648884068846079853136544709759847064247686769181734598356979672959304590497466118165366386472061566002323096082389785280883107861311523640667460258342770971917957688387327900100053087992843074557760973757397874840769872818815555938508520782464116223991735174844160185768190956202733886575575973693423154213315628901467546501333021459070849787938910623682760893317649427694574277526743475375171730591207530617814350752234058209265888801833887150927819337413559130408683232166244771974223692656936015857712621407872607497262422208498046101258930322092930867826247243983755549437959158462643245226671917854569184549133608323217627750037279131813554958962801073909884723385124493986617389525433940879084644196765188806592096542212923975426657102961833886183725336434730536089300155587611109868957044744709637064687556449649191081622358368041508042720751275691058247488181810415716633602557883317033965231969403778400399756351298681499021833197087527055378426676581657529821839685537874570994834104694339335313381793783419039540770177912319590798503393972680139465195108512068068296778727115368068892923493370668380786784395473199345052611787519064195103651189144962187929013767087792625125160004374537804894053183829227739060091838391180558026819117008479166383414373164929627874609103903657304059700034846713720245079965897344007072347919427309392928097737590399623281336771438257892832347560206411365733009484756751180254290849460027605566621653290686581457741817100383420054309131743867284241517308811002943591886645680836074960899943273675604474603562445229308595297847751427505461025716375662297554126449115046428033679528018753976673449689969025819623346073015229068312366302316409727260793925263870357922852427618232142727626648996417711263212944961243117393199362036135069477726565895990531981647504440695442525209872292934177722470871746617431974380854488778809421839372053005927384204269518130754831297152178326429849240405884242487666247057554075187996873255119882471353781184345900803155002125500392787910847120653175197007034569726965280245453265438089802729549089828257898333948965513737979525741152968994398282632072657600275380022467549210454807656893332530944450988816376763394946187585184914363665528836747609086650091476502534071447723121084714105396027378116433569363837049626682580497575929609449441242896633378375291518862091857251394043712109742770436339962675307101333810848408935012457043848759856335875927580829849021178036297031864380488386331063390081992823569121263281470074631916547521856081769369288392528314968189342435359768427186371033314083539594990104887930755939390316339439288175391401685032484235742144998019714009992749172344475694317199704878617379223758354811546152964941575511866963299874890515494206268193378564051465677776800886192548272847805156923481630460189135776760842657439421822111485540825249252924524343032927557501342687943238944772805119813760589765324834584274992787229615212175707637312013151691382012517343064608094926100308276979923050840788055261371339137003917843170666569887988496786614242963040113731244486846943667555236749242389010311392335139862344053864307910367014999232383455534356085042705043384474339818179387557599982503212187263277059846568722238225731269123139227497181750969620840809519254802877247939096849946828103230277409084744044328053558368352692866168418397058164352216300804102218909385822249412431220294425184482037052713738365446701519888131845654600154525476694322258296182429445884441643712660171900479954929544880279905023030637269996671569242082615387033242462044229161844274385186917446478374703340160451675910431388850332937539805171802625076906885039640792056889849372235233380867312577950978227415954637798146390634493089448027481042000062161735713965796847589647141881996865879491829760465702966975578172216339508765841277443166777371814498060580979752549863050138177985076627283667378361448801065769453334812691407816616710423662097046900510096346032448407014032195961062946146206138421371961656008054122788817222091360228179637109664067533019584439524168317294106711913253129698416110846679067201121242773280846089836983687545498830076164649581273204167161002091882579136618423653864028674345869540513305264316645311337272014845365958349416683508344891845940753033712131188823186074430112479313448185764827737589674009788564376845317234923830256708259879841469951750879715971602492508981764254253821348212890585720957013441473732592504686251468600108391431497196355484610368346404278486553898117634697664477921270671239991570727735409809609515355007509092408246634503931398166512882670935449941133823492103309105079879124226043382870544081844169704214952702611046949510835062228437922859623352371126025320273706727415468221237162627640390128314696534574177365060776123434572436022153245463044398866809740784589684620764446876171827835703144726238899589585731191734731250093677552781680324833315756226073533612988637589976268522543867617440748845762928512518340184257964586676954362978932478780554055933787642909486453253047796180392767346657557295172406735398936219993912025547836632575417606174778864231040648184790520272833790198951949622675244486004724991033663618442112666648448258687900886246801098135347945210391679520653634881927341807958359001839357114200679175077413437517040772670008502075331180911124909098229143113234265578969251967802689810536927375410923328266252345844034827391021901749621117173233100597437523142502668803068746752598667983289917716119936531577510418406184394996774397929997351921847845728516844576195847536073073934765262919157089962178941449798071415274640833174680743532801924778518294764074726508452835989595372958853283305512214815025431832346615908567087630359390716611754633572492062714070011049887078518678789169144455235669809643570475237373305796823876418669058551926772428116510259787109009648309667113481814221331267453541339665341759733062781623027378168801187138026965560270240575206985173860404469614881739059149895252618378092957952792212175061432999328753996762822332229856164235134244642046634389481987664679414212129698729218593342918802807089115658961696677227517229300583728486678732492263079467837396567821481011638742293396737408485349433551944459236127304948123591200425023319734525431306027213255807303585759520515375248201151817259302748101745440879991512608418408906619743412506649749068617620437794800328004219417390110249634943130480905117962953530734885122595295318353673025858286655662667678651242540448241769921467191062054317936257115286863386561460572356304873059508226166433616684773028064232545990844788378380340268637781864405892849047712330985790365999707470541494004110569944868736057456484275661446743326673431189032705463083427727236748910261211227189125018072862382682490521826693472470599966568712825082441953677762446677403282604887129482865362397039115638971815239870307001440887881121178083296852974629826784849977987435384089601129250608931245461722520244754190523322147822715660736271617234750673409887965139565813538382062620944651501797170060970747597557284313089925085233321513638246528254243735594830948374669567805978485661264551120009953646035495574173306457642084778556782813970280223826341356618290317824843085489485272340040989934549656351347063898810852204606748292486292337627631516557689228040855513755488260792278376775094981527971919333954916414172574703153364888753022860837624971367256638412906116419083849330956714362152752870337136746808400491445817939023101779368056942424857374596445848978714779914510460719557377929776097265042029894457421906638309936668701662350457561448656970856258346058219224551156159240054496141143478377127037890156923887398305847010156291652162633265059378500288143120551021228265248356825729392018384628101253996460626283787248928580549238553770421369704607654132667242931612180384614370476867759881722579504183889906937344431727607222554144241232491796944063379743004474846198988393678975220254639329552269086174673701291276862689004676412447995657853991821528316332877192719667399682786872924836045217559971015608757436747131565481522307127044259116443869406560294546293698771609148740229860294432346431962524935233366380510211605797835314851363223476263633259276504594539833870187554660785335731789195881966327008830803400086127275567544109490236948520365152921845178092344628819047965117612919467674863625703983924150803469716025000942265461947687555292493479472607536213730881171522062392483207372627271822705567839992762548588603209745316003841732763984756818082809992175910528571600819327020313996849721388870086307101257607808002191407686360963969759970620327338267173027378462026930713178478003419414593169909645205570533043398171507384730665982643097285063473248743466235029909365291507831169353400774428043225423920284719379718199077617762930875833471277061964959630959896535977675205205852760092439913214322455085295758816520850783804885468448271965584989435873751882079165695064612395441217636314464260693229003476837570947559490257394163674294086867567100842839945523610733246462304294842242142852804991352186842377933518182303353048417430817745443642677153828898103076701595923340686094415525390953722464806176567507407974041151237396457428274589534953724581054899030864250438398131867877413840607548054560494094178146233090592871872744482537787977877189168457042293195022826435087318605687245535862292649781872045199470232695706513713286717307507900835276317121955623900050153999377106133234026002632259077560993689450064679174196667866149395111595921489647059193339587619171765951634765981115525147148070897117071002776035026251514544368121520085294991666458191664622846600474108418318742443266342798552718503131427679684761024748208976454499383031976705317794595683844325444105438626158546555450380402990372591598371227183765683919428386168693819446963603231716732397399698779360804275236698053527282917526893023247610511503204654393228038439193775546667298874872355237823967852355184106631611416512347684170457439780681671488101993941345913937386053189332787257446577283552490491201748639373998709765096386631087449071802314238815276812892299939552680481406283446265404633790419110148268045330328294826099572604048450109663682663311612206137948449189815739664264318440747911586749314336083685827822207179817886398425198577890305636850701986291760578914971064108517671262624662328261786283992591501533425977030776245276858241222026145494024637078693063119171816538116737986347324584746010650564770148838611163952983860066652017290483585157742085568460998665362423642384525044930633325499904160558082722027430447948204991515389291626719712242929407790373762707320550399614786953864306910364427370949453343784320543773478479503636294049044507435304748295980065050050128868174609528257848342696787467997134251221946449307500312821559624601144540138544893685558060406107646448377631700858587344554031062729145881430499329307822332235302799263069728874596490590017066786292763007991957234672449049188105830909425854884528384689417951385783184572619791019519048454590561153795842089328588071829099551516827746215341099610314915304015948854636370740889555735474536756761154161382780195514266101207553994075622279973299013129493330512054134051706395419797671100735628572735205144894986314641302180052522207937590736125667127039047011514433606399344748027461497096941803907738350773343746070714919682606408964823166904233436856885178979110905335028212721940918822828887981292763694174983020046517180210165498140148296244351755240171185761123676982069914853299155067217566271488693919070667303179484475086473606905836683122622020090708041499150589013714051203224239319296557896438211268762699820260138027227227851440356595264429747545087363955166162550492560634523765233297716177938874126625359964800408552420573903123961682971677325406133524834467808017452728464133393425084294089306187042772251886870251243188915920978255556901185246518808937044424543164244118057918839847947858103978307621858378093978793111543898403887930377560380170062630110916931536445779994463402979632785203693155489125595680711076871728190572662808651286938560126444281040669283708926857570185218758964429160544408819682077769131267016681663244354596418242100306904646299026161912231578908830756499217282407113000479380416058422309281937857815154266798701435234270338782578423292650631611504670645243470447674816109426041368962122884485131495944335496027800390581335249666549217628210434596636100677521674883936239286348235069019695570741130870662136424919740820410495630142819413842985879458509426942812796276194455868404066731067136658021354907273605521039808069179077217672760882514734788683782330724890123146563822709972388336292197446444873779849013346316992573628242360787725235805439479314077658230177263539054804684766402917106171591143859650183830827600845254747650242588359578156128431225893931452350890293428943623837791110026779682478378448490381427610129714442709609061414359301752865272417987979939672357213923516486484865433785280851290956504376247368504955160068331718775617125886686754494312843570657449305092416461213409967161065935945802636149387345190931487580797498827274905641507422646644870084038267982943387127624062551469219083857558323385778006564162810971364396475314041865582105273082144145967261931979220508882645336782127013991077324317107161858617291079806045865960850427604967608692877940681535237583768621205889043216553775747767128985222140596109526754410846996680842583536663685191013769768005930913835660219895235798295815193611876667946223329086873743116754426577468080256819724073459492483668349530926747600372876385338448676394147567834448909998939054431385058189680834793762219072800959875007123478646533142709390050217317544850870679551843762760760162436781179827084860203391658920695096225699027699897198677474743016039822113697764619512743291662396328327826406933054021321234020914056299586314702088330553803615530913944258571023421870715772236629625512020249984567984043099836379096882656120535622251816561974134042978218300792174569765376245707825529966347648239968815750683829110663092301300403531180111572094200270034238258985452326689075939223641713757573669870740149907051614277750312621670672039170402220046137133570755990048216493585455857244609314746350701077480685320585556142817325110197009364575162348068376207125668058080307055769514933084807188138654790000271759686162370480028600081595781145713866945006655598763115232954617608741702779332956547766326227430021337508441476700051262153954145755313762014472202867594840310547558214737144251782218906087563873914537705283904717419381807623068390358992662478662700940759857953171151370949041612579685243675915335264671748096916140974996077772190094636745420309030340328246244217647126441124357256905145189842968513569941043921021262597042989322210933873456591632416673097666030353170271487860671345301830771651234553066174395210917829380040276387725553283894284099655520802598049479391212373122188051844520000268422851954763242324870554032069538405626223567716543679881453576762288631747055481792168979792997614516420287060607372995923994310845633943483975308542345868262866385391423275462764338146638787055413128886763941311824323784082820489436507081548956919994066026807831952752668626952843624823805339677669297854690100452945270876925157602579715174676768844339380714249703535697628191659142876017705964776061118115719235102206866062422038647119114672571382194752912319548180340530175098903822361638613095538268165948761951307166070434652206712129633865015787659759202158142047744413518113464871268741369436584916774022134305898367810516994078796676732264035346712164982355681491928201824745726500788229909600325295034246918775454221375360190122569725505286876684575736133386312241296054022948006061742850976951499535326783443873189839379572768920556679131723896695128469871589393271061147421711833968682140736507550647789663592264305497857346787375646417633075298771799668539050652717152593025551373542719163395468757129773427941313503768493368630933106506862943567610057659599004428928115716700727978297547027739699075811350927276769557188159912177176520267040121883635372234538115133421830853882926802173564255477005821750964570641563498821105782788004342819594058125585788021512836151289913722886998188599493510729251905358446471414988841167473000595761521030693263010403062758260759131250144172847504935144212947997515828881623160664614029394311273717158472820102580458493585815263401232142992617449906976580119578698909405656951889317649888057687576043200709201022080703569166437160960520709465661655262898189897983708425626028426977068282557713540358433794743011493488048586804672026143749036030245339450253482508200802417699148835388760612182603091640069786566992599933754640746810488659683499563245600701644243862403241188991129110421545454121166745352841763690363126239996428421823841331623814993845599154005220888273276011937012947036435403885636347731183194949874466634126581376179288988596727793440082354236925951195537389547499502515849598765609553797091711964581904736925766316512801022534744437107082168196273506180937840275181274807053244365026830750552318627489309149547425640713599823891354647454010335029195319982102950030877756533836368343396861614436448626692155285968424151800729141151099981299972122416756788672160879929077181990254296856085158092141586285037643936050264851899183508378479396864792128463184348696345152764371631833378041152545475507358973343518068160232972986455764760080429336189883482428081782578058556209861014965379922838389980997749292280982533103981699798629740316239619780111577542869074346275074000467306572993018239716165683585589199023916235299030751016823825815017095856048312440610810756660192609944478227883713356895703181880905819066478261133865646795201932645095701166633240396471872942160145211517478694726761708428186416831563527643939608935751594585209999958479529990822140906924462102416417929881124812777278420265992662022981581800012162306146192267292322774232854731690548268108629350259467498845661784495705965518447911376142597896693101305141061460522589071967476834787011613016560598847587675467115185097531126815584297393277268959324394921312742952044586087058954994316406485843561044064295888390013851097905827800622393665746829815480862679087843991893996908050191762676015573321864289394891139491419833830102540272199450040155300531319104796817762958303510397112257488908771264040226155074197152025389299477146872542999406377317479028185981236505272597266280651881522771101472395743385953960063118097922724164670368871142238859873579716168763462233073383519137794659623534935957283427780174714495142500575787105191401382070993938333649738063960390610534273849823976946389297174398555923632014357336603086954985096544578784425466910184045291418312849546024043828266902968825646947602936104291331572633730238767778038411810769437508010142797879878902191606140431110028772024659840298229454565704185156285955009919586674797006873145661539442862936285305630420289639556939602929553459317727676905611776765176147220545941232405300087052866310190069277600115830301968168553488649980842719529026688799816847195567383315168776925135469154492388125208125897803675046705159152837765492837601810998739089332460541484175763744115481978293513319373948127855335532835983591533531540416925620600880677971739297529182635748289557225864719424986863199141186845986446438878425793748867843658149666497597406835707400675884898313355630498180815059303137750605900593483528490281525135164695527228737774531955137422467548953583664988092812756697003878736594853078809790907066637256941738569880812180106279841374241529725718835306057940656575067869851252772955403801514349784696486553946915393490921026563819646908543475504902860299220797342427683187671158827469183912979792870712241044216899043300201912694403541046369734361784090202088375098091661909497512110910552873967029792371099306187031861314475752337766610168321543259613966166731953208062037705408189203109777228551743244589006608480381569599108506890485110721690966619161474492997902926321255843565014783787591373561118589401237553217790034046949834212603793514650702864072963945404521535897856828625758940466051314041080002408462997046810615193022176136735810262784365689925152312180238629160975441958901621120143619459376314634538349944543626030013683017959203645662767734792528433408408502770041203320377496324953672839021793565969775051057686446412158062242577920853308465823556445236885635903305034178463217904915309806836700174270009075651227844180982422810376758897947336464591662946904004214790422684900000363743731548698688657710535671746045570408363524221652398911675425497160171843914653962793079158195458831449883742371667809366414247389971047673900027029864249605580446222877440102434097371013146839447261426883231366515180051331895104419329746198988538645577412233402940259693730291240793514573752656252626628030603178611223731745196798101905658654807047718193060071440324501995416104043043785860663505851361450656934395162961051537151869696346895935367340548142547243845073441169464830141188643292160953793601129578633911997551915821784880436829865813553220084633610058360597056115985760145884070455913478173498738345671349247967932432647601599787001138110393045787561865282505693106285902324620275278102767662977302406748738340806659757014959828999532961621044671365477039118857135955868535781826584213981702253947480449535552453841550744290706032710773690740191341558120756408557967606069845024381221213150418835305609951668275388327128589882046284993241321122014564834605517233225474043273135576355036558074109086207319700028231053268809839103295248470021990344366850489479273786389902924498673179145927213316191195843596406786251130992344302854633618830158441085038563896920671871943944933511043746242283926267907521998498488445363020560733606323169286666241078981717560907030024342546537433899902856969280045632602000170783254445382102710925985888056082446725758721284648580760485668951257125328379278217393424088393394558424340774687160247675386344935620998891551409199711557707847586891777997818826577577724513199919348724408958269806759314643906991292093633403970910281666921509428581926105064058606900376946359324556154017758320180824860001342375438458963694149821853814596461557044316399839214035279960570144061005627329883773487358906461771139072991302064170246268070821022227204595060034518492540057764446317275325921849855814072064831645784989199928501406680854174792959658178358729349551328914851247830687078791136474214525357986180487204423604079208150708043345501038560539788516763359887595520921010908441199931881477597995304775985265270868959343360467587692605354590408470128911293687850201106997922885354959119066843491821011441131292952107385335671546898760947897876178875437296126164075296914301130450036773059696619952964371992701488920732573267609540194345868257346643332894209877553252428651877410072193765493351648758642289104462121978957624058008058682124938926574262540186767294271246496172652994704049896554120913512820626294848018605779818734838257607245029553248601364741308756500330535190791586267955031607756753828393395652014943630593862515290124406595109426464479702007511436656562522175582822519733320111312683754795326265621919558781564217464081725334001555885635816624530192813577639877752868324159775438199920620634692944509172723784015227584094449941442473802697349156020316833641449321378501200400793818051627885517494330953246825769948911145023823192375030552732958455481481909171100114246043632733666012193133631354508830843028800723210683990253383745681757246825061947927234443259837002127030927287148558524310916013090639117739634024947445190057840784775368695047012614900081910726477767388682478292837967409130820781212915709636264993305203597156285947750365206081473542360445638231790171055318299939330473295307201765566731108205647938162046112140904270722914130169717388903226724495872496646485529038554792087182222240639964532910384943943145870422803529643508732984239359321749872262790270531499545021409864396140938078348897082557001602955759193120870575712006761935662406392243454173095987771722007399625963692172525243408212214337724975690210048197184632896942079544269881241866412193097375789417039949686538180668828184819944292061454713263776772772884699429023767585019769532102565224788320637659769010867348017414568085651463132376529211490978984190134889970551511312038413929379346400319388515995107502593109704790358544151926394928892929909490194582644403697954537023712871498698054391250490340008440850498966385330876138911168428005168955974226166124825309763454805208125377207513892685287854362426111357087265871138210565985670925100272600771419371001773385643057045806330973033351462725870086350488966774042935874595603655047300296904636894907681645924558841876656242780975954742983999449973196744749108458422160733905712709922114556346352991420072933003185146137343808052567678787488723483097008055558058530546421624831244750255059973772946639189590220363701034180146057752130755343361396988180465148886401252711716453005820322572690217910415566580932669367148526514877557280895874630483776762194626594047767310336094309793746714231216796576472311868524491644815677135619608196027697833296014388075009695551950308933301761978561451969890590823262037006080232061691980758112322856757783547530186076388457820992859342451067675963250941553991344210153392545707197863197512568040555458596654757086932412470872341585006091021396760527495264199197679605104363488637512602150659244704358405202062947385534521412772039283204338777013980612813239621499026137545856176543002920440885150648672014240813319964799766246647317064979048731435875939240663288913129092005675635477014364344459204651333524782631744759419349297294177919425222746824203948529789380593754663293530138903347427885906073164737005465321107750396075596427972360274459776329185703849503254281226697597259843477472506373112798618952287380372194485388358456820434902310168546927578465739550695283367619539679996801742329584149846094358242194285652875425177789572006971475001263255310301009664418459093855279949147395079418911348448417907951669756526358613937220896111750038171009332245309646838962190412453959530303170017784564384093265035870192714020222076975867667718661080177280662813246236025018796733793646749643619379878765167498744382614575790523631732491961847452983620959738457524882663560762585431139829439795957191901304022910190623494201229440883596252712951497259482945096651311800748340166028072038240265831002873236144638519259927499625421740687192797933986700882016052932185120622254765049362958873437841432196801277481887625008671008064837011904307499195330875017050608439973990151345602580321028626520393663789609417239960836381324614313124586831623689397541345016154183563139026974940902352825513473915549809729357697917856341245826346153498412783302012529785680436343579764697103096363381215157455954007846120150711052763897680381954433678272902829831198162370495712493354607677395121582148076043178687349883402635045082553343642656648638747193410431398787875831799212839627549864193304358013513456553576252455833924015981298094255437638446893821105098894044372374731313754519177867466011150066587606944344389613574495027064745684415377215893761117910166334980516913366372181957551475011944540743721423868237976310507563236216617003563264784979637020571668185574994069564974684538659865958571534134277628420901482156357824613133750079236785894701579216818185392079749508044474729302161637415777240468778387010418208939184149269042260951427967619144337472521554803019719520716768190393465040683536490489861218035254600904210074614768927866837926468443171560187832845200426590406734218444931164835271261724456128965481104033508569694655482516052345508489082243993522954786995736980958814584317014875269930174772851843232254221410147032044807694366112598870909602149827122339500230080208235980016690117119996113409288333256108993954519038531098577396093507205035153664063025348069120282759961463002267054352379535392643757994949896052545461110272262726329515293830934912715335834733406693377566549853827092670938512061756580890134973659016726304208160033677589920924807235787685652644070156969930867792349608596885822310360822290886588367969196775256334020561043389000302453314965471473831443955240224670693023361936668006926026662808988304281893918810505571735696636288046084103255271194261142803199600225196353865030661449076145194105609299332792488644817070267332009673738239045457889927994881678470966194275920727712928178073123047179418011573446723772994356885029056136944772335098715828753098690649843029545799054448442830143874861111397464100399927003796742556471058863126896890855040901477650826060454249702308799079825310719128603955195215255271766486076314878003576442326986503361194787918645504424847987210072505599100818193474486677349265252248271100235292191778288257073048338450662442453393984019225468135297655322967068927289686675381871865798639991820176838690470940285615457123324923199218079640908935112529761952168136412551094992748965328984395468560899234228823814701780582974924245020171574438544860159512892607316395079110874893000320262046642687065518575727714123285600242225990004434095124494722661274881675732735238034195984755930705824645508782565968789497448679935347736205343857107815367983978526814864160462164095937214032192123086986001044758171468883402872266601553545659306719613930547847156718386054001523859948152246832746331461079491638088830281360513241383350782581643351401475721093996003591773114071541696948329576602232747198373337238104807347264068497345424256395425181756872081907214013375037989220953778370235233399640044542504781592506913426852398167378017911221928104404515870977127125354467417500987717939848061355180956342811740499631835822683307411030916242736589117262081694027435097887479536711528014924660090381959730490604859075228408088610195529016085821002079931124645678231799788919413683328314392298668085551089599387827480084315638632346111773798984968859781299254422501173486793592594367018578039443669385632118567905149048383071723529042843954663036943321297186389948275969573872591337530890892250577816384209415781960192571435301781525983588539107023153501798477905804596519147658149813952414916734118232595591001362614839971159784972436377561692222437698388855196486070921128243452625054483881596436513784190628918866582549274801771996999464382932155561987822684878855100497606331333218418573044584039099195970575104360301814344882003138572505686391819323843062618820969932364412265971041689985187723772666661782504468521582180024469107694863295284648841304047670874654396726943348422789524188073931767334024834555527760216005183129551229761064409914740568854277268896467612564487071472558758256593020902113443715001398173739071405132864436165035590107412026356450086273615756525349022761525749581141318133877928164758256726294856998133041526412382140602017790041561049116437882816871361139200175587399571855410038408863280716037136263482800515507390954233524797733110630069537110128458984894623823894524121552808038130040131246764886926367902908704800039723070607903426857983017785750791120274924151364804467543055766731408295355026074472861001438336826804815057642104397800139823630095229036902646911939851895588932141531923916442220354114410734121452608527362206181418943737839934313047595287579513841573195245819552473429406621278683788362933035179932327323573490859841264040468794268173475597121876517387147024981569585626588273257665727296341194818565617769867090820971988632405847300002931292392415506748646479575637946333454447791842640639800338124045326554030293832628114409091692527649887909414515610412648735061492825136077143404935912180730821100233672952871316295070097209901079334863239700515683806441987293180251854532807650472681440976363865512504917873920236123795406514056882076950595143533599790605282097039850901599171903743183204696502452967047265787481302637265585694159456632581327556233021333736788967137576606140175556238150165716016137408203061215688458634685644428746643894475748589335296399780590812305313444545353448227124653126606209397389109493939215526380214784248688089474164808378783148597842333142324204712454305856288993821896942897072333646640733490093430346156858594844239860897156208967949906968911642263358823573925274199310581671674293906668752989661841214302804592493788028939014494624227140110625010189996836451576923849902941527824877803604708431570717681171840692508852584577241238790570413027762439015407701185782997357069123804037869667352663416509430327054114785810455332072972358805072355063627376982835749342777430783549838525854300966378427214528712365034206901148712069566957259179827469228297135732364254647635322886853138921103568107018853848071514805552399529396405306657104475732916404587095854814027849270318749733608182538891680600848828010493286956533112738550176467294666684524517005832956589661799766027068135623067930867352598653248334536967960032912203000106071840378945637310218776179757266531436726003591685961345790765531478849026883795242133572618383437438868227328259458802261237686113440184137677898178776255779732637436298270649853447337906628980115059728688306257811831184189538671398847748318228410360558429251663022986840758383529206338380052931922713914999436023830209323001594216085735094451633654192245712948059532039184793990578488714519131758932758180739325955591279996973024048073537078753769585156977995683776680791762599381268764184956080354320161459302565136670209150545170831905812672830170060740483460437016612500309209121513384720716171006157112686776280608496658358411769165504778772989754228566883622241970767137612641850472278031246639802145265967990163911307100187878112699813181624067416761397058311522704073346792505316808308225690368497683734216168858624153074822813646826791581878326803082624540040195447204270387232363036310966767996786962275602556053827029565883090900654627502747024019016606642558770460390562073614523239187989151027481197255696573944041876197996263153393880388262716280419126777893196116482188602254031370971746860988311954498871728369191726583834795781432765232561223115798787458268236558470220517636263035365119019925811623924469242565143230203473679694595858470011239542692911016426359232810376509358858655744641256016276608642204470900878359936180321281029123780831215046931198259366687337981395551273348832152501730874574480314935403360940589210626125910441427228781723999449847756515205025248799284473967384054546038919536622191758802530931905669303691337926914446104395395042313742267836568630300745449072981128976770845048416492859778715354529682719727346982213667541774862901541664466217905971210141456320249097780027823505580022910120585556307270497889361047344352197752395867999512874479312287230850679862653627261838492906679097639290426351105574634339206610705501525095319669683767622812869974547797887258947712263889108144148789591499616759479640379925675930444431752395769122649943268182417433373227107475310774636753271654643291484051020141105420774671123991270415301804055517697812933474422814914278118117844490531255506992731991184084816059836105723392372022145863843839294482810592307640342718976916680257501296906162290945900649517730407668461623719205156694546599666910769991953504278048782889777054851321385167728869476527143032705592338236310121831958904151299512914942284546731951847252098742140311883676375438346182811673320530735293375726012103521872403683127805202319141686984726747786754683256457205223022294925582329288667530627910339711116102697889941584417791390338112005473000178314385624829787538257297953802824819861854995469633529766246364301726325436277109207180197794682436360091634068792553511153048500475738369733230706649693619891977778700199950184226436502324816774158429767876916743646357591252860967440958269864580331325733898964847771434357471342090803211573682285173503921560431842598861900319644065892181779570866484619082807359525705740292358719233135099154622692423150775868688022746656576382249995488324458956362261504877588768733412006791627591191289543230624610268102985494144486002576614827704473507708190374669225085496151656747394391155570916586668031987234032832230326998971194612899574459741755797013588504664925065072692541665367446151870048966795700212306549720014354006273258203126927150304657264415575596273796017656400599338432516895169148486219109959020047963802358704251073426310667331145923860175661438901340699908790919087706200075015520491158945725590324888026824380229421516604766312299001626659222090972451017118574086468141384846937985598960698508654378666912490954934483302811762161990328719745575967007253750148010659351094772363089987028433113427166498412171837620338614831337389683184496537583966490799983994031457429444029534401428292246175707587497315861184022725741224815720279834063417469350598457489420940122266304428005791554708690047434271449681938072059681801176011015409484215446985448450234136992106791409441109810848020472961036985829145537004495560164074940565857040627877181741479388181102781780888707299237930231291638666722644786711495620850277522131475664945923173188231092244547182577252282773225413270169166582724452801133263718919291027487816255109775971672987567825407186109823326269874251859285485819147313973769361970747019854704943055022254966862774317079653567556338611411695454567714804282649093071856089082656571799666196182278443215844252920274990467295049402466047390987408111539670999623389505721868641484640102051937154255267769847870370023527498417380751951075304036952623335051929666087486566061141305217289295623214322778553080332834673932890248475209574543053077126899605026591793277221591026620590929684765662603571790060916043576636332139074587303412243679470886992646941666850411942306272566959053660217085100050660901001544272528155787215538676300046918957386606686326370176699095811337853779748386200034833753538125880210065892235456525155717497677520172211962010249311146886932160054459372224661451676112571497339032028557533275128637253360540089716183871551937415930671735093800426480150039854789215210367874466735745121844432964004386004777829483142148435827663577614835509182682043131194414697644512817595331863944728288118120137676889216924944849368784439564898850273284101348535788794439799773204993241093652394835834090540596308944241207726077067872008188369539803865087246928279281494601460163819465626267709366035558058466125401628814650184063376124222220260417935408039356870888998011734850762077654333125201919589227452496835339670758667559198485365564098153995463086794335096593589318248382801439694371270330667868251412190235362444472458741720424222830729275198857220546601031884130801603016254430301160409837702115000393291213443477834911270739565084733586144459419544742606680483995916165660395093838066498294904255113002911453443294137011726975340590632886833605409369427115626720509656664137842241974798012006989437854545136100218705763638777087678133633220278077429047903592832481387148989587861911006231162243248858010838126410509106617497647718352471550954848718814663913359685852853078850731954921995559252163798108884438871439461002224578075670234981290926948978445146677834441957388246176194144165764047282339495420526542957648513802760805865377688033476630709819268859816049450223420921265785466973225528099517749083006457313130715294743738183689572042905093722593341563752759640626522471235281807940361855238885909184198484027516624988624070463885491959028391935554242259106846307909277824050037664375306888203112594888600539447414680098474835210805528664811264630491772808652444914353322027646721886542611484083289295486214711773176912277010083701063181482167724059079013327192178261606443029126656192163222504486378416408856027377059008795636272826254480273508677096830954630267861347394594378723251844950838560277847205381022844960217525732282526673190639802023603487316868035394717121521269165016689007647930923033099679347719898507472783375234207343390871745204635359112944740324898376470639343115308281065507115118327625270859358199163245172786405740480438416436939054490940144031604635920861162539551712942720056760794167755091021223293254728795411310947484280518979183985814568375350859699646978901926736905691933193993403640389712415509149979376940093034612111068180671719272732304604815528793468253046586212734093299968848523014967888714883685002123019807557714306801490156683431757202892252420772102253031928734804289740154761502489919466640143984729514124698457495530073790516653160100310281065990720844486672126068802520301899176487795939219170762304388038817814917364240546792949778005985236737416906582259371423031465285267827436293922643027507255512045933932388662399713277705413261408006891106634833662506841214815881142517285433915305401862460229671586616714667679862744250929598551965361027017994302747169792985964997348895410140110999674412760727385140654832619637051978212338974447151127839548501752162122318407820115645896227885854610846698029196077563887602521696335689548398625736705408283844827975397864707670687181385981043158897231483270582991216024874800986666289405206370281485323059830018053332379892874081838583119921642895135971844371938790409590831665216106808809107369051533514345799977172564342378395145452244635134463610601463451811278222339441984744743689876281106113937560786293563606256632147039761508434037386342922946028013497429026771277768050386123988222474366349496553081369173862658605133212435801955811189883761863055480509347171395559855906234937217845733554711787745646688483107960496141969246047339624888220610533162518838517281848917308223574172839032594469746815784133708187476155778747249466647083625381620383688219189870024048076571010685994490917028884222259405058133186233807417845222747694720805074429671805193190330650511389890061716680887536981677348050422149716002725571876821185795599951255414326752194618998882218382320372928668577923963612166643787433379299488652132164197065515560503225769111211901903789018545352756284017144114777302870679159177224695484020379461136329209397237381695079452767276293232475142322460250218641474728060754912764117331596187765526211675251198826122159832720167423837833057890646002105103632614883891514870287304688861165939662139781431893947282313522100437887224701488449699077921047119842787230354900259754785695308546819921186018668252686760728828107542847854631702220010867267348659540811362367900662971568239527233896023766114377006687126920726636811696189684638853562075358914691289985516883723610968390729080998055936491116477665423354485479415490679057977756742331775627115396282554158188794751816511341122785380575170916836059079689186504678075046055037752010860606188289880231376591937540612834757299241547204777381848039941917113752911048523061366415013463979775665144811759252069340568446247323036311822616446211227384862835444368439935150954360111415989837629109535585748165893643783460481999623508888165236681108175844757795887719694393956713170017261112004942091848060005873323907354643507838732974266908383960085578810728259259267508186886476078875627145004748296099525989806795789979831525177810387601427985304215480531161315165817183395770093438661948944043926385154829771004765503400418981676512575262106052257967427242304454321566743296960472008064932130768443935761146123718570398770293705943949592934346569062585899646644797160855752018755345965587886321685576516204945247731287043050895226184951757293099157422205279705245434773454096827614749487247189345096662576751199803106699290780509466244419637133785123328120973775803526730798378837330207048078866345583163548452423745690376150089150691812317657689108219126159832250738942922962186740969833706733854629884742513906663119168811390600183290288380783359611635029521522328447063693862279430309117925743169460113940065550224466665862107014986409036132553675047298944032824062476393788864915518186141557600970446051929752993423659590003367388002484106920411756171862602149411268988687950381846177578965107039798249504478005104671636983437861404094990817234976297851578254227898759468348125633569654344379347691264272032364312745816179408000454707293589916164723851827473312621735167910545288494671174345832051408088479478664425100782159591986473727177898078534676720693475542412188166440992378446669759462232128484437239279005147704068127485243883309753640050607854234615396429506324973525820526360335768007759275120559528093742219508863799086026765067844983751522863221030955320828580983492708514164311255056783407864054003767140997936933525913418674254881377294763403121765452922179674435535312208600708921935224609072023216358622913080150520864220129173833542637638856671214920524529507024007772531420602013373810979124663303574305115929497494712953995419459359421679200522734357231126910793430769147116618805307119438644777617762409207529609002248006119330485206551186258206267122329815793679283377032783792897327257987244043776223904608967586444082816819276602731612827863913607184580617332927344209414440623880156246890717182113354700714916087736413143999365309555803517736619643156502894385251541363137893965905556742559849572445766130411644454542109771728690665163405811151782272043839078742438212633718098278383892883089622441761408731197016601234513037218602372726928369080747864318839791325325641531699514366008660471287939474600978721399700610411805227652279835815996750287513624087187697661993969388292509905655267843105803844702604174672733046154579771098575645327700506291279016667588334348800900400043233059411040679266835714593042898518046131866039195355734082943261284386080386848043575927952815729119969355006660358647564210468578879344167693754278703400036531169844510323834927427300043958471328037583530234526497294988655824805518896865632908390578684339153235938774439700713843259022572304522982413834498068429151443609080215901728013486971486827689818309954243437703188569191916531619396845660839111721029376371665978406736377555593613037399621978179706830271163197159566121871497681670585296736437591218887697088790580422869038245585528960012394642495776337934239814439430202455762310863767287671668058620379933863258767642674765749321844586636197625765477182100865929394474555491329188782373166248925700615060895173027655997594294894986730492751977039764759686856671320008699516703644640648589568410665920278771150789465215925954761721939973572783551580322198529256684236037255652589363036097097055445076147404023085532359375570524601209026296905528557305822765145951015798924163734663679308941991899535113524831146575934077597402631000954281963070227591127776368807304023294419642094961355813214551118524099407432684894439400555110253430393376845511214755468450656051763938739434113371872236087315127721764474643233924188243726376094476649911351202388609549851115707186356778773664559015427258030276929121242227797526492568589028901271835465178951523865945847542788792765865826400384205181715094031201394060708095659309644454814268389779807019468477848823704592734693446572595261925111363122145989397237136951983130720709127742710679823512237525521132149890160322417033018633829547893973455085928832078346922987582414494191384745635706168167832597384148046449266879107409621992997598573715335528040910112357446601624705722207858064847726553799960892801293093487074401633136807743301652739197790159334645128976974662205702434077775385102124651434685290733725503862740997833768025043446876903219276459457995846679713195118782812034294764159506143955281166319563397088861378304355554353153065367831651492714025016692926304243963880094953897916345274378408743464080201719565582659430229536036125324296952267636163785884671074667947435366025816338525818880746831216404384081569582889432856484609409218851260808144564525670094882161639426531382603977855988691261622457963469153776970281971534024360726932284767388713736157527121513507774423927404990072875910125266403081591540288727061658528415770466228812044224148301441901156585665976767050139875574858435468876073416640736323865370041668939666387172383953961903060930908093854388920169053318905470816979385019466020563505116866860318537687286473589397734569592190719387962595752184668666100138052066910071926540579103860806876222635044285866653806925066200850673557847181331176597233843110169281568561201696940111905924558206024073070899003587230892140656594988853162157740603051336575869924802059944676957106449956011086505417254084462769628719370399702245075775952359202450077893631260424607664331221501835517788985118470326219730036071437421247272281644572746546721804335986831606603083253053960580041938218996268030705038375748704132680710390275465867758900835905281969330032313697348570193845823982060149876928775602110618852666136196733238571221302160112124013641154101051587722160268976944668784255122974965178000430744996362287191277845245975166049528522930340193896973596659284635011178699865057395561341251127485264971474404785341816337186750902824865268989480670496739162298966061655872343492676048482713532775010174370345000370274363860249462190616174748101152665719410881041773655713333466103604606859735423034290042771196573682563563181404799279175961718556334903725474013580450739168228749513711875574920821710700485307053179897293991969811388902524163651958244441979816195342424413883823719133016691093526941712117835355766145193967626095094707061039416870599342218687745145734523218509046036695101362332030905266544505972433824981789953280518980250516397533836077132373147315462840973115943442944222130163511228631739975213395868053528461174496829251057853989501021611370448503007526330610096347852677222732879000977005168798909283151865268339370283558752709567036005701006832121262116234338311272940030035002825365567042049449882669954614455635252966081363168312264591297840144875601872081740534785692954755009281199159393626047253959040084730939657460273305836010269022604451023934193815647226615421388582719835496651891235651030014659676836355144918309185658923050122098495408019647001078334218028569464163523295553827844030242074641472632565704155022694506176282552452457328294560928009381611106301851453490895183680413841013552087845446706635208907271146575688617157795624666625272644450054741080490070253260793466684570924471680230008252419340555791301089044460015035781876135425140566574607924801948849010675541147352929327669898139742512010577823818540247014860054748858708638473006719171021054840557045805522163352847457511450837009190771082228335203769207224506178308681709368494204759400115973627071563179524075378463714008597497532412817546112903336930981631460804398152391976990360544552898326489374677712301173715718576801553872167519057272297987700786883850002239052402756006995628934161730686114359018970859341573408231903150946959452768300106661928789010647461006687041965549542769661528086509698434090615504631231855059629348860376634679125278439813861115681584566621846409803156623757091030083575039754664350352894546467068536155691408716899129699884388541192817072724327444698762636877488655346739871467683614796197669910111186972109345705881227728007930360169263252685659570478900703601991274976892475954028845191679544465714762398382427388793666428611252722791432165349819027676338054232502192815218949607069369812033553218637125168646924142889607564574116302239922205569221425512643955243732027871899572050861694054362225272968110276451420532121341572778532060892909074582223010008720554608469017377987633296141236488656862594387668437957648493081342530304768560105820269977411986035613724190295374680293900292045982532526075354407012710041631092414721568903847181051143340894555964703274597707104292671316589097459319642400929945559467946118960994727763224860044766635446987299841156291562275481066653249143642541321384067569844970419857355832279791601775645083156538406052119188992100535219234707441784173096382006028746999773775916785223062861241577850274584118846259530412867359352368551046531863919454750099289001676620850785465689357699637099345408097297625422585161642672416810947192460102863557432463657071693181936239245686018467712100104348044003319232720597286961793940591076492077600541624270411765962002758641001270131124298635136016527499753499998416099204125919145160965904685429718122735223221814394156000487638900882659508567848872712770357897605058981090666237951316003459082059166138584585529803636561515117070731862501453106888260749128224695194684932827529424552401152680986872310761872846665635708766372539655385563159779080226467594741999326919545135603072388700514687360943632250878937739070530932014362413127743406556139244862148143843956232927290907024684515287956985352425585860564924323455185726237463330055318218864636790932207326554846047424916369763023711549563549241613395529192966342332776221599089841088759287833323846853650566430984411148790654600714411442504957993642942545150375564838052644769689796318279637170306254373199316486800067529810263238248890281225128725150916708479501279453988124842256857465473292065471878689712028364728286516849647759090237497480241909521016228397683621617821862251246577919089607623374233704424046533506874419827095164768528833401300242926703945926555717387173410993549398032671176114608690504834622780887595535982339079125452040835043957031596769420513227152636068903524075797057247915489158268495778060419758237629907326477644877987222243535621145945806552752303377872255690341046251217942905446945085726887689793914889816778847314174431645922185701553530407087281070627634304491677054134291303751232547166069128000473861190246376608327053747026807955920404339639965137827290642422581429394790791881669272158009224992685551289568295232861041730777330318208157119303947816842726027920418373369722545101465441398214499262322581220104906505487313380130028305316555742850937308534268546131542340511990821024164220285026648170627276624297317403702449648930037147531528667081304597464687388062643993166158785997416570103862291003015391187148765857421214449059607720017535201471661774508976236075236969461855037936936311003720256429991634180889261885064871572249405991991392947507979032451246249683445587107740259392729925153797452154350796217896059978131174506434262148635929567900318565578015103706251180129049853513000915857657141354082459873801470957682411309927990588655036240429082656610887670181855670252155561013573502296709892763054655303810138852825588133478619940932488854071567222206900694284069402160120260111858982927606863782047277153319205719602886845135297588897106461337506248772253679989053240061807252925027079917159690848072655529986027652122507382289560825296668056628532055558658342747803868222858758303982494252632919142895215749772924091294021150456705127846920046092336333546897608342799164527036720544122686528335837286811595981117186634363660330613326376037938024412103556846942344639852806175207128654999319230995584197261741426967408249574850814810355362801255698980647525532894681013397652449353433212099491137950999865029561186497164867556520857852872331312588680435551083076858223743580509818103032565482093540359863364958627497737855805743370692825138414794811398224162861623649297230081956348719508574888183097533400797510053177736250408584834081862725690667219938372017731784708366506213474742863182457681196583627616711791666131695237491872672834131923958901687492614628439963259858740588710484435579978878771973127326535632318608477595161904255241111492405832070709467000329164814156074247562382145546409112636417552866813931627290416981754300574981107418635823221610708104671063212693561486769235157852470280989282895032866435437854908464990337452336337049628793655660979594469881089160740086930892185313151504715207082381211266881654250361947556268394571570180903538953158680998367232221964278638810255234708357908693465021963725265165382655224512701233847756085486889708286853734073848138511577876608008744470303028875485822020143902775604437929776322580193617965284118133577273944187806922688750599298785150843338548268518399679229671347454882268528348225653681553359965783943088911006628625219308439240530995313239617480294832734712022472599736911318700664875216810496165663705186214576001507578722766071058384944720517358370357759531743498918395171071323866012241451107272111476300136395616922078198079510392867650075563328949819312316352604799403785886095620982124509687240081526982874874000283511209778081666867946024087173931366939262667860554165466087689183583321126777752252774599691536942382197402693263279415195393446004356122313999698847022592413325439190122067538605831601222177595062740757817765351801733671242786111214568285971769206094125645460258495598997115446228662097395542675451861877882506258795519428276856608474094020262371010690963178725841444605138227324456253288500936377164698336821890296515266642440437122140612167841933761469791998078643365780768755762230407457535739386860477457739990074778132184803322148268846512614127615385314919929480106047391367092353869465237228242473830301465048291266727726850015451383078369190266893725949651446183551564698051758323940408352789817129345617229496549676886451571519048750495979675796481800272327989507785897013614676433180676870881514529026338061852113787829113565162797778573342332095189409443254715767495913683340866123878600708209117492618434017369329081643237743445183387261582943076839267040951636025692189008032193993164641445277516397408583596347548546184471322613817094040082936591690287280125756693675077213592675684921976084711207131372220161718112876296467877249567030354167359498994880209108679932150037095578887037038293807638177328102817258139403197641284854283939944195460267925599882566034853791565625119874257875691302076282843863195248880479017754771291154444530083628548352316870035687498424535524797440849439156276767966592631893146342257283579583889688608421011851187493288904071449351033026992995229887497514092819000149989732163520679891392018046667138577472105238656407159290531293096480242118536281553510988873651681292420028919865354658744297699627672602984870271381775263934625900913578943657346180700008045086169188486690567000933914240417195002093008048089895207294793940815730574446001765878509424068848552740169062466840570851597512766228034407186479377943263004090288147012227798897698287852758911601931600127085847963721308499614946627874484718089715735833790490482117783053278035221865358891924536032395755488114647013532336071593494950564909226488699681888799274901298798915450784402946157215777399045654136489949065081940217705647287964224303993047956889953893350535405895894667206795000047830924661752455713963721408105384550804390222814204512296148025388376276546473473290367479194733358932770606746124681924950444146212166700402443045858154172096268155965856547853949214844625378737266885606842405414661737317422453489686710054044685430970201642628234065522794779234591170443584355580288149064415464371987650970062952289520054864648124230453179651081948775209023760000864271588429515745611411100572722707113101559509042420080883744411588104919383520678689325271224670926169337445561219566380620473485203074610570286590622451229950269140601516604582537416022565678320772570517068896954905447637228365195671966402873835424012377698893113537937909730760014443585297046551537633336157439983237591854894215008966031845600073843244977510347989565343877633609739766665407314401438235838044021181557614244801832545050445257805598907291491985406024799289853507154975607940409639154132737538740940579445566005075044447495607813009986107767194592417236284319309320068184957680067181384127603567650544368238163882822450999145050830961256502658656496546545334979549652386585577016263239721797633224644685995304861012143765536568963354109867935173737034012790649622245239805853620588623940542152915985971914653854087108611110148118470674564918604172902315208262282167108309652535769903317581465215808428529419724805168261456846869517008045385302312727379167741923102498283231709277466978306397591635496562708443385051032202830945544009847082138481166545038924846830024004315948544596378139767158201709492685865827689286530288158514197947106282854992571005621102696691303441337585089095784785835335496332339642209665140941657872792015969420946924045424649197415062143903148946745433996698500186134094206789375041170242292889664831205964776844994962244589128554199717887049207089394450260161663315969906184825507367112871892085446264056254117364604957626693320724199613623046527106523199974422213346522701629297506510204203928540190982708173982118345325166026639023164165132494281671388415742809578020673159303681538068060593186752806251593551831394982382909499117071298912251162251153772303305199741965966451748670275552494571079896232710667588008310426459985692750182165822017207767292099339955800137113549973619648550643730077180229376278410429707398423815838838203131395013878238599390439026812266166428814382961902552068052929242987233521413708305084527878268191465659662050541389612597502390795875617735755202966169751685052888845329274759042468953068689962490028700074375180206411488666337882632095202563403543064052525089796483383560337822857677555067804470205495718653237593675923208760641835511168694440670821518232512892053064746165813304211936234798985573875089728506800890492379797370207015947134091061998013089918011721371321569693992768388619974355447569466597352212731698569470975567864888009163277423631782994005725462015962060669746599890424557611012513044666831797338408748098004607501413470929041783341149611480321083490039835670917368757070609797737031990054168960260906267524558890991549503063288758137797572116298954058537675888567043825894108060121655910837399037083529444498163232284750353271182178488843071586751154164396328301032252665309099992069570868324563857186164552748555762172509787680892778608523630034600225036727279313888094476801515062893095262856835048112499845600340849571695774855144104741834918475859714526088945224016104397772128864191348864972382773344279905402305194378413637087238795087516141679635726725227530948053873500437087354374525529034251280778462622981629787092342384877115994748350953141649048292548500398327618839677251812561434387143751436401544465625986848010674984924877772658522486974431613662140019206689144227486616260598739075263100408829992705267587985702827275940341577327446956484954872227048357618042038483130597624294953042913687059001418513126948500311254651021817987965607316806733507665325035086375736923809742121026032658990270785204181993889748729078815185734601907927168104292521731501288099497985648978430676275513757555785381476087264547733116741959471631993633949974152464261446791872998991103297840683515310965566806186221963717519555950793937975690556953376172640662730261859568752605137991083832442905223564301965591019727526040195498538571298315298808603006051332552892792625941022901752398016380977495135902023959014814801688213600056001899034260535263306469905238358299979533587378651177396870414084467664916695854354319300277426349873443214452353674334040561069663634283322537331155487946375355366564319236587668114558956392749610496918045730089679607749229448234398623557607065182982890488504923238542111166393561333176791307597735321842008785766199634505010648928767524617135570806518857580268035345271912931866623835025432506800765766862943361099451442368606540559477229413105361884656684358902568920593324763429732779596181159358598479930120599268117908546127764430940601146086664052710919430697460518339791025605949791906533696267268923860081425675865943254110492319588336687986039651583410858681663189233329988135586597416191932584830142858610977942031751332762418837205846879814029134790013249648504854506380864153606893789560543127009548028836039919959926464651157007416971038051054545351208446372154599945146684651519717963551233479503663878102313996642822666558277771606321473752096394461673872442549590830137971539782740124190179257251282941192267990223816407055846933386783538373291256085456395492035250311796137364606893241370822654461329469193840048359019175976490780110510160213391759855791209375209979361781208671254071312789606830759980167415067413424101512326942164812777876002695454117822877187880060353071122830137908660374286349442453821992655870928040903321600826369211948734042455380532751685111075932817864657653082000679055902491226489586551363761536166979048427430696183379025533377889755333059993644433312961305641593339655610261608551204361695879086976585786512148784874726790245894264213589306987179759898154374804979360216152061685228744429706238788212481431812620076303865277074454661804408405538714037782432989066814628226403575796136144396253151394909029205086530515362029626173915532980030499279867917917471533457077404784199655058582614999641497281816162020837962647182357896807923663905817283674913880773258812344471972015511603678560918070083820101722519444616214051194525994477211533404980467366142118302401477029326856713215900508805998799448462268655725404343179203305217080583433772447761197507245333619277608143697944573675795668415547514724111468887334902440851149237871394497738882212601222819364190985937200821880538580726718932938215259764626571918708037682923983322402242864457936757214216840239839632607534760962046044590639223646428797190167716469718472259054798994288882389648906925975569230105817926735450492541534187067545542235187253190386602861813457180033305422233415176769609802304967039678329851277395578519719094594242062772876486321047120178793316186135779257630952906921368162817152354029418562641892278701691244983497246786066902314246855164425320679054327403835335949884424807416959202248585543172995234318423596895686648365326351931532137891563950537638394326585028278400096004287266853291174073106179330972965276645183721595629840274928515360519063646424887131750814236025645557093415877337708610689408863152662185726427943162323767065084838489171012524654751758173411028167925242308134388565324333527270993770772119471658972481116002640311688707205222074562944477379361487444492179314312116780900674826103077681236472268120075421373736535656331399247103983203738326221907069824880271784318729190133441903665885940932765488827748837678883973547995738387662026589788632300683059119012010419801616383138233513625052084377187762554448134655625998463656511124051888485994141447121409324447814145359337769531395818464908889884112408253599468890232171368393339854175660790977641923233579728856480512976918724008437423882256823881863604951668565595851013190129889939912795853300839672182213251306103488371739982953314295301797884873936131809404777051743405012326246929040604395508572747804999071921106780386646980334924345017182889966182142754262534365376137729952302533422231730404422880828784799250012949883563149343580992256781340470165273792966036515498320623873171832098631618236276883981506631157213156277785596676832010824553069431609028137956642065988089489787060193925217354850684691625328641455019931856022052028863301320666483449266716578251691771854678047939415795506650384092591220154513404024785235529764445622576760142238631166781792564524738153124105113031150397204380845463869457746235755112261916643815138955645690407663491814680082752604370693119270352273722681571956311846761904776751998190770933644200236888073853078317894696673155960550057838781644650485233816939816398417308261821210434457369603044044614488406796487976019866819432062349747507844013207679221761342949709310496188777898545384501732904899722267061061185346790813293793634327257322130681702413292552799732225860654795900224245087994172883235911491538112691296504870826331732242773715809864971577034976572765952023363616154797274706259061733634274743112997139112195468674877489250098364453151626604018730189259097124440812989611770776715693286908349363868117887755052991534395201952519599806144113005612709169703564187520701197763522745514636338708503898283979370442482819153351787732156179774948321582730721151682231266095075313131205348201472883903466041663878073510579455237069168366238300438440612403565879439649959566351817864630314429047922917988161001017787698872345057518766605391159478682876960195261091820572389310388036093678994555967656327623048401422119956470772769044635646749849117005907041242905660363694134100809906903393600093943215959664667870352450030893530831620023732515437622671046683886294227140008453054272595955274280026115631193519640362032564208855414787036526898855699108079825621908852831053843989883484497689449856145211438790858880533418178088452442771783277703003619599802491837040996874460981761894381615965810024348710339005875710561551457299401350361574980606549100464684967034413701186881589675606931314216899911325459766701996145623335611757406603653530811270152380153215036575902070245527033222780776926913779757157977125046517498019144890048240377190220940554839273589988306834137175789522213181719931846633784574282395428018092903322454556449546313659553551974530794610270192886943737111555392137759969881078865458019505030278385962062429126684725402577894661535173128574484337458431258375596236512292430522807886609713027697011527363896317366750747441752914698275135715535635528625822892176564843751600704547725658433986092900781782638351406128794568024346766023634784147574995578021502659666987835575042549599541801248882610994293261101538615061268754187643325636156702470318503089498767309009877331376542650261111032114342805326403905600330155841877940931033775292752251683303213257826619072785756954554816923927241871571075239528232552301484133838545796725221356364364150424392970721432211683540541321729634405492564693714820831613412914820038037461271355109274176540159450206772362292143029753993311572695882235406614623319304088380131514067752266091205770824424949011093435032234922745695684738360665377652247555821969694719792350964489941451600422409190903917502391051112678818270749625814379982422980018181541636777481804794878328720470035187380127872889568647776863049972105413441159312597616282419522498895237304552878371147550930219802609222639430569011133112946012465495526733243977953994571426766413198883885133956693911922492136620009579324257177003268716887724565281731816788917910635896966044496424182596987135277906971849114764436893496566941251573123952111578966947192214548738028047911473572139593691694370360047296680265471562376087798609634091563403302337473895485926749700128623161236046096837065548947639164481025139639373675905694584608255527950369446296433333461754633867071997731164893220657133339929758791589602469559615068196719545608902318541531520150582058761019290600568651413225691261972109393031743075271736702198377607808594195757227828359528033594476572445698859636457071051667272055951912729631685948069321986024806798377568352984270270489384858008486128395618478984247878222931657343522150216642916013254255577014444484606119337620033675361490956019449934404128951661738694592923208936012458176109912800270522043567975276024802295552238133509014987854107242979833583495761447189209689227869567811899226207074725403992425554510930271966282112430995796627810981168439621555860658500310065270008303315375785036024017881550846199115286576580388181247110625187456049003786477241640557291265674363890752129362493585473324449574773140148769407960891110030691719925160639713397693955747157001531897763676081980714529698055737715159841566196159389445500868338004459729108843916729635605298952878802146710426989400721167111817112708843517016762105083198311079469862094184905372379319354820014428345482585298320756957674640234370007103007459268153552774998406886964244114402227271855214398410720775574200191689737729347708038605298755871417388489618024746365218150511196549535037811390005577746946534022735833406858571700794612220601394779017610840952687708248325078694263736930062396099217477685634076962134823307369770366115193893106671885052374677755261765185337504479989182676989567322065672454160399604235756524706693187907246034832587990587649980125561003594664847134645982478560782339460495396148702286614974477471597357866784417333422797323628246648117841276915132734797129902022241404508563727087815257250181776931953510167268400557271337095515532395910306172988097423473779393305173861930777641971254014502046824725781314030618348046498750512443864133425641921293650179542217953911456677039957122362786154977310036710764375363731685409287141579923570691501863766707534025220185868314243994043814184838115321520636822797323909816561917826800330680657118606831820543527366282066259421233865730405690211792896926017627002749592304742604129807478403421897659645107978824043594576192242622954576387571299226389615531677538435322799599128757512012923443758898385708121161640229397998473009525367132135809702401231918348055252713992745218515908507426023963323759362836067426952262546517809558288426951986015527222850691729544403992037814401084415535047434647036210451135204943315885349735952060068118172714050892265565378794151216429910371007418197357593193253753644270820302152929289551609574903783196293537309039996315915738788718976895366509274558959039867966795539068648550901919360214825699876860828360334192808653607092807119242154873851928086502351999263655838968048401709113570456983716992645730208120446676798253673990077537467692059258678274540122582503277609328443194110827050431514701152558431731737338210974822188848641547684868670445376477444031873491377464068921976597466812515111799336651779469921510666227453540622272763982080314941514710048562837161208345474019410520814455682939954487188744139596891456846723621680559152261727734269683537611031910561296789298141072880943702158135237422414580833681342460211166928958562053729381595130081958543395303185608132035882972336466469627785423791321468382210882678655095868978346181409564947988306985240254342984885664641931252900697535742821057815774070946059399199207509630896473722267891160257388862302596586618654707748643347593403265540316378325399556167819673042987628118878589808853987823328082079935049701962849554480574752074323400109758718381016357330563085745244385889472465863104446207530085921846896090572107613590278906072697700488460298616115520771323708954683950913390382014431875704329095793307914983525038826688530324612155542977048980058293747435044091484057969990333211860234262150457738779098502820274440853057165585271208423908514720489206693731287584241093175600559157315127944571477757361821852902947386982091780953759160797708353936406267968967634281163206008868368967016864559802527239476048348791049927453675581226628775355390226417202536102516675423407399173502670741566741634117894194402063836415994386206380519290178870448269287691978014672221393778086027049688110659372833368834522734326485484463012961985027025199563607021855921309264123766638084299341140071457749466587126266079427951697351090854465609839675451107583951838635729852908064521916647994442229160079148359972210883119833417885543439690615717057349739598024425999762240837663390907969345721335564467193290811509391907666324163101188881504836455653247557440287995251635454284532380843370816533952318221825195469597228090514442379569132892012708509319712333235925950912977970801241611247672255826431580624285597331690822340317864557989899494804054081031125567387999528756157518760572470676161614488716705967226716867963020590527991330246536403606024155263915759915857370009507845843797578154600183387591098760947140848261947023629612882020497846488977720881526589357648299517566047694193727901545698256090487206665001813009844315541854574629201992655293555410317676178912450585738545541509089198783804649625872318661982637490952887966287923666339827101857767840930052589032308467073965668940848240238408681222999438768852711096027150855246985171629890849020167965163322630186038107197557805795664158909208794138518675593358461893809945116206274349911568384721504193858924561896017446541980890073243793802467601576189930227005216970282702882349896944114948283806170532984964864344802889315745109665228625428912020391385427898685916422175440313838155989249430687903333745546672615429356269708639090366085853236480312613829242556112460450393062849212954783881275846513223085527144089797558207348760937214870821634125781382089753755285942389551476676612665220016443381434416703155847845656513924009580654828117191676100549606578242422880634336705034585751493567314485722474182456624814555417863538951511108604403685427990841451443953610869749808103717819397248161362104082866995754614490661703140290119726671667191297065455072088146818546423321695067119549079486603906778828193809328829358961855153863975263280296343576296034590400165536050839496922710071106073237795907208418097167693745854924349359541226426254544030574523913491570957302924188466941631466804733644747570260703256121882986883073663259234908615981266812319752337274888642192886707809374708978202898841961539260964536487442719822625320580649018358472357801147141325605854083505400111591782368176780675062359894911406820895013450487180911683145867748596145889183392605436221553301101454073970581468826720236897126867854283120843220746374567646039579182093847880465363191293754288768844362659225118758762230732437141471193754980418195714060098316523519058824916720093421497616185800530178890445013946002415885978907481389652590911624934109781655255683866827007101812181770866835641591991879359554623609941005432675491890352529254180437824558958883066560553197689589001482631836035228477233346766472150215086069639140002727592522588611204644088979191295297130675072974682759979532161497694972677194310934368372081145923018130716046667948470542033816327955351566469815503370926485566975150828145110482309343130275045741146742717708653746140967058747922414430863601458165087216913378482677394359905797726654914483340178164465024344287626749147791183999192706705533718744921678150978342806564244967116741416268957652033387620104488404172500476061465696970269871649301153257472957873756237917495490201364269519024815159288265424874302834928334760384952117995163508630144942142827417696561592534285612939113189999999837566783663841957788885884737093748522726544385946799342155722815890981889553631401439746502393886802784647521002337904724545916040993745035435321339323934764219757614279614798799911643811367201236005734445618237034814686862351518564927728376449999314875610311844734267541797825347788668296352469189124063904003121658649046181821373032867948646627871523581444168399285343891510805221947938432317332215788698561624542901716787254814677467011614121938130998840670365158488234338479169315546062652968392353177237642099729818962150856499014255258104417799594044873584560384808210470034406386255526629179738893697866904027676991649383826657250658751198791293611260372903993433212827235611182362775690026934789612890854760476017369867566591657573474625726842648608848491816308094889097620108274575308367631029068053156022116984541884687933345997504063928909509897663782464616470564603356133187961003088612449862597409183653702801042882028842083898280193798387585469509918882697964745379216873747177534173624996744500193486531494782996060779428260943868825343463226410238035314106050909120973802320518599134780560732751099515028946196700319829953550899605704877584765933686542293778380737324813595492189762368772638698688178517156747775344118692354872268692363816183302420922256465243242031409080558225728043702719844986978193074474579322185919632482460151206951823650373263187620760059019735544606447554486644916541308139477667696715176338687505241677232153978940336563168261529469453969194278808729707526252564454027481185792156575501460725331537762703627007391282153528165268063647821588156663050179080333117914562575771301953903827739912372879754582107888635621744440935718139087707644549546956848686050037452485587253801273929396401740943828345031474234114290693466921277504888433163130399197219047787562121900124286375887318522697052900136520676571153105388516359359801072816115580395885092798317003017557715698731208098278437005873399110776880418981182573990387610963898185482568690699315419966266347951341589795846131065159406052351875679198474639917188869648802996721550381989539727181019863845055900869079329131793454053408793335048351945156949959526396264164758042819691419427965708092919927268717406828222743084956195645731748793888455175473238883533602053678323355204664270287528918228136036892773020175270646784106494743598797585809550683442532267870115580216831449924534402031949164288126332406318134791572557871164176526154843290349030651559394780522537612021483185106680185999015363050939911326955074041251076341670796079350030637792562497510126493624566414374871252628809862349048929889484184793855778864273893888062266841547075667686555157268705621467327734496914638757174377150167954033024046517002062886040598325762002464156029199851626967266526845831074254796826843668541810090371848852304780771719183889169792080639307157129990169783408281196414788515158348161653421480509072316797272614345218216557459276319536395882370995594651292371687589906298276853106105923697081230584371395311363066803474867393458423507350385969794006977159842989961653047543567955374631905039187408541470095865053184689396341097544150812012638660247446853743729457868425230581788516894817293288878055337233237489253347485161840841709803894840661886586835155309737420692561392415221644808523364938414513590923609880796266411260435551892821928821345144331823262058394973888403703750474429500517379862142313177741074007901088253264685383080272059179287621218727863350564009612045328189794237226772174375068804307784339464524213818165605974698473046968234576058265007584054694659965785659908362632009034521851311590691954625782232551062391829820016278759033225407224511553754195232266702461753928381887420726392198233376125874629671386946349018734309252038925506414544875993190630644831890226155418073907382113779592333069638058075073983914371908132508461322057041032417402712394446856570479476724267885936620065443854388946739091811951002387485111187040327047004951974675503563521490128925659105226432766905031960716928422639618414664997905940891152281949277349405164976862485749378880194416370932622819056195844005470679471112649132192643160027088443902511561576819585570763429144463811574507590034336805445031055591350149834246930308394582297535456144458326808516630751110393381626264512479094185559468554184581277221983778218650432875701682127057911971207539373768116671766712169889225013349624001736588109893274139401574367064295845147072500233281117329180766803415948263727597658687126277064070448045062196088647082727975482054096412809392257447729151804747491956373072117088978969771663080888928105943753030160625705011446919547735519768202982203600917300874792871645399245808356517475216133215179886268612426196366583110836675822015023670356307227555968337516174294409649212834936917822354521591843589156247854164431974866304942687028361066439692687910929083174421289069386676374946097415096511185167270078566658928307699490959557493613909392964660899631463512089180924303338705512261021145422801725467708149854305092405006691582461605083617621776326543439352958272020860533251732440859393155840888654743061900969896075486615509403300121463931538475667970214664969723428091722033731498697465608052832981991367445854231005306723187883542532381421214907214583767581680706223534967013178138258740665909479701673968712679332883714333373340958322471449252660119883329009302126167140882748239858427762068915844791429284361180759561531931553858499094507624699048814086701122508410580614432332444229711667321873341994194552272043207750280209225064540194602136510665573409534490929013194166567593275069806044948027707917534074806278899147457059430559330328259356748496560218559774793112195731829003309815722710995131610631903806587271455586119856253548852615411211349440852594872991105504061716357500639000896684132342875011583070856680466069738673583021646559108316376437469419092023579798726674468295759477654283882973835560336460563347990689071132757942363197702330899946300490217380581198931234380791838275475245609120624870267353218125150385908035843142203596032581736654938018777404462918135817643013822379222150681186129431390738305757200689157438308167630585301507130016411130396383407436826710378172788002156369674429878171344548792558460974562363172388019685971840572801821509130355792404079910113635028238770466118744344695709252564266015922204226243392550542314798589139854506000803068038105981353448212462627193854677440041744180737126375166827935344131198811993072190589644033280590263466256932612205636394256533825480609277502414782221718029709366269110088898335866839717592256184989943087505485458253167506428337594489788422010045551738290301835150856285028796236385408770212841123635494371135741166139761500564960166482008443971455429906757945724029955084120262122492182958978766264747177303350914862118985734094790093761897148077771377286399282021577704055364945564559339613324701439040177473923297672167624800813870452738797901062608765192958677405347980900089852084441943047577085903263205185079589158379385404221868661073997826681369404524826451762600515256016163437739520288072843629293839493394359295779800470296106956011815151572541330977907602100506855907557516653339285038527497161431040910463592281446580937465413463546087165553710427445234051452075008229155817513502580756515144691624202485080305460713752582726621362153609012305609855989139716043630333099859635334527809598148772422407432454270278299009678596398322687546207438828247945211422854254642246693462569695520806399844392657486373734381097580986665901294152266685123451363433595859818259720067806248104819096221739766331383064458520480921981495892840514683904702819304809954221914359213807241046990590301912299987944571080203188292384308489452663845590796149840567170852542637572969604566371341830365881515456035246171828183641654860703780159236096004779868386836319217030301442896638915735326177084863351116524396616102999225429280819613033578577070170367456327001244559790801401838171484075227275686561954017866796559760243077578949417560747782069999000339462303016031815917442091476752879810916842234749213250446552346711809516996151641294347052583046236033873683769812806014282051932015333848962760086961850937058730359102179355736360580140926480626435408970599500768844631504694928036513474726521128386490644965976078677005766990296873581313495975305887532221833504222004560484966244244353239186947881895756906544700614574355808882050121801635642717888521978358814181174823398048357153252356875753596800051043475782628379660121131954209224731508283843589750932210401449719181585499468977792223700090775173416376441922760853532536923399223700979356072534123510026871880586638212637743370062072410554858599620486619692071212006137194427747387638267493214267462462672738254025040562789854747744222171066210108041462540045085555962033818169498562384144089830611437586258345474863182704469627566758167954757735659725365616736803450251569551636869942043159131825991284742434526557206195994991924718911723788400919952239315896982142213406035114133345676184565072515425632887429660611517562945357876309708790678157555651619604675332296389263844146730666003742752313271506160263357195102807387000058757900935314152339133824370657551390173446902021844078085688774917432475972687083172753329152831628143787453458053925084252201400249793300283365874776914065329354693969194935509207499510569145250777106218818888873771992801275950277867923922583892523958683985151281693376914909514141721106569695622515882941400849434915927672497247554999109215834724729677174085601623253703804046814612276811020956962307344428754008914355769352484373955328310065047457867551854065534386644638545683442073184077957826822309633412941106086901181439304999637733977217952502357559999482225075363566599740841892392179926513508424698974173102319348481831003001289547954810181853395382949279292426002787192441567740785264672050029632675592382203931953306283438603459991002453562930702269757115575175181370187868930365081492899085222180137830566749654660256262434205876635726562677094809972407438874029932449457295552938082338351933272205123234810393221213814508769430818571025435067774994708450107696191136880091617704315674522566484747588784941380598931076313582302240130628605417729466392338587805168705104959979570336100278524587059506622790004468125661129725078867584798675550687577980029658594358492015523478959215382752886043130427542601480064508394266402725142952954795888737761424710776178218074878715305139920053454126786499916412078407737806548277124854302905747869554248774924399215706612972018908280290261769759554139057047434221738889279799148014263235930841456525503791838019649649804860462385811785750279399230676006049979242286668991219576111451856636810430599823624448921047117656778433624027943056446161835510540155359020428671710777070334399239096247807108544597483135112077306228168123123363804095864748412371096904029694101509441228449737008894542407202384424960922803201278759130564107483004495149996222529810039059957572105359787986051149986505416112002376761505015166010115969749214049120665587281965123820097210458905178518179271661570629101323341291386654077880295057248429963999314100207402233011734189131637595709743317337349878208182569803574221712118241475748232202866383118222290245002326357602549390438034342125320513319890905802812538077212767260401846524576490655441023119524910934920736568584569777658557122509410239623564737871798229028151037545035225413592131572169954415649560580316194903481861035953576691333431871800586066729695692208261660672378278413202103384693162978024825420886780413032382990851366619213354794797248004796677728308506166002917279183266712386791859398439856635234739138527336169850879013790591928605363154826295156407131033084441954811213453153836446751585635068669924671200721512885199492625101391575942116130154588138212032194468970715991143255326984250962537314012724289140390506081602353895265300730502946554061304925768976830843498525614986388323628791073207980627591068380029621917108757252166299174774801259118082381797180918228225182408235556587368991239787506728496413738728026358336750583837548587986805539259813576163902346148678672045278931636695964269407714991602624899124106016745695305987882757836745087936119650055152184479592737018028550489544001607671296590387717158158990006453250495217000641322828503002298009077689984966209219434595931001381418906757641758398740763240709998766193076703260457062263313745573447258527784990727890840756972664898235518495751650713731955440746552275235420754528480527116165112197985289603437843771046688649952657950302825937561524972069664622791045670256389041815388893471183374027077741303692036441841734033509818373650969877924016638785517547752407479450175546833023636450464133099761087659917103143989925653503185972543992322770489538313473039379083572868799086434540779960477138829098373036329308033620086290296478651263290459373090207202082790469934699484829886029632570777432963354038476181362248099121899056170356672897872932665892515637445323447709566919344918761682027307510137024578881721989289883530387284811754160620112264081025903554504974595841494086625467847786269083375749946221293572344564955471923577843567121231290643614056350106740282975482298290392038151416885551484003176387245887951583699104267897371933169109540170112410556762848539788337701485409577182174841426648564047195442393095144517640025252859367413679758452125615278993350898187744974268313930403182704500000555582442472449739586905100653212675042403618555555177638674159609846425999340586814803113405208775965148289668732771347831449058301903350048637173360515584393767152205830669229843196680721875179079811254595066344864440486423568396337207058079955647402237465004199371987524218399075596406322300807650431254542152028696854151933221308554748192268968011314941377717527295278091398731393396511374119422507964491999036832464397704398599137740235573987633253346558376669873047265705289383666598692625032028155646127625859245519273863406196775615079376032066298328533988880701407062116355861065367070880540181387897863784584451886129067097914944770427671698619932727154147176654946824737775457177147776548727598186509957385558047535824767894998262377408031044445196357996687068625705186237623765969752455570474951704592491747093306692947065645330623712419820143207002455174348605422823932439570973665655736658958249007010028405120080961886239370570039916547073080423439618053697631754736445081182487138948764283743067432283942740262082805974314781465593854186148688808023281874804048388859609395585147220053072503545146700989620888100751397771132863983956279676993451320501937406423495672765203367704321042164863624679497385224026527330037382919222548280522373834525822622897789852368055613643956016393328641046201703890596017196897002015184103284187441598989046766154915734255826863856740548363233834489646287405015279223702210919161659313428501136988902492598606493292870584922305881850205592226890945152586986272674038634747158279587623099684209878524019792985693693690082931456663993726361777112239527130055475552344854747642479997125249405979104911607335832279449398998267702725013047005276670165810877185888993686009267105978291630058825163207919770293040407028063347929597372943767203384440233472091951389983679505016711652363574678072413758747227243744181202380496275619007752696178076173418628937333301858492951112810234900336516942670550604930042212828006701653635977976694655661623186807946497664181103287115736612623421702806342894332222393000391787977773287650479239782769650499365941529008801079374438290762813607367974558383296872421870346048303473883858241860126928170798781121786330269993106874617324773871576054275409792847108126711857940791278958809835798734520972917364625464200089694579939463677183514878170175902623346605666010919019736908062497746068125349955337460032313265175019799213382359205277916349929616195757388850007666319933724279690453498129262448136339696012223070124305188462703755650457644743980437642162273904089363759130952580804799959080170673948558263167511379825671202444386291180122317504287323813366537975167754307829690062113081986090478158344516269415340012315759172835958667379353674396335404062293391205191910828564484725702912580256038368615137811293433122652760011634210596715391135035251019051920694739339640012223438169079518444489682324851577800114945055251563395358897296769529532425890033067148359026481115331311389481856368128888842824652712672414223880380966905701602072184902541396654573222639597340070686994771468611885369610709813634902773669085684967882589884855537123717641780435309160681706739964153589317431214143227747955356436924202575995548286747387053108318586170838796221291436626445768513917478804813688766780459350858671498510977905302298677059247170016294104214514249000428300872550539309617811317806718688741249824992469266952674843318309019493353360382988398622416159767848502516221690154521232032520025584231117782128482490444535906672648711281080918730407710324517314020089339905384244820795163314613303979744834900249013591505362797931444660567849623445008120363393062566430464994824294676237426407877007531960317287339992308212137842459861479440602986250775143458237682085031286365694314804494024151941138293924888443222171979608705268156155475318864358235352886203910939432467698862348954226058002741575626445976444191783827331540872525135323270002388034750158591746654245764980282618729625545894293030913397951319062255705386624684996768443082395249836827878064287530270354236599168145138526808990036383597320191844860316217632634053226161898644223068499559674543426169016827636295150266570632624966827374321527220735816497154383753933363069469637340893932097470169727550834531126827642346861111941082658018604079943556917710644558436648732121841490851468921354476302513775320766538730425061941496078425653149478552203872476930472750414813365576323559415149339481735587298068086560545314663700887687911281061890705035451310354216813994949605466445977795224021162420771730973675627967548280051935254774034940938081547215336163058983375735626357654795458619979214695504836673302718969400540903275563665565265241131794208087104423495973423450782580689111121525835950995377773849685985517660157841160665179805419193900353220271456011346209161846813526269884022000803908360132410650295146291574841069936202449251837651212823292722769092833387377266257046607911658985928233159536185902571114578573863278588781789031011047932476901550975922798517288471509879389368783343197931513559712139499302185851259748140149123073106622549487398797851657160983185105812470434227372359500589957166616121115806077737275456720530019595527470880384517545734787280805419761484854173826733775235811951627839875323164615314749283117362021672103512733910001513946058046280995581173517016414188778222811554929179890339933174501157950520279594089259031881948503748494741755348482020064671142404910663493427891399214019056514207606818945367077362297594813763872623573772973431267514223816350671320879857873679831573902508554850080947736938664858440871377194395538183728744529486856875559379052586086606790215332343637454938766075195119793753119875664537130900504135541600814277862273898281776008058471394102293042707930188755190509615053864438200507932637125789379277630335718012234567192102841491407001485668207814511950663622068685370633026717633727167002942518278678478082396434254179515236658134230812715472521455960881253823621450323500867935320656485262417107045089266130439663644109106325227864303095482258049576688481344720304545125697733035386005093614883313022170012884768472137208884967116862635089275651875106011210483251554461041611738207213826329951055158200744667294743165236606149030633504179300838601774065077787989195036968922813893030956742617662703890416233563743395658905613097341449752725998071669427680880957885592339979045546686427487039605068022261957210003072986522041710897069522680357721680090580611833457872484176120563815710619118342081684114928521504162901362466264212626430181185811160517476300792887210957240368759342204636499885282689197269366817716935756637324818347598345967777266593629081700399068467691391379526541628136303193650583824823795042085258811444880436996066034071261841972938346472503672476426982425426702914015387246790051451921569673826299691962659837554241899133966496379131906231789328684771830001622818248042832487250758796533861660655957197542007505665416248838712923515806287648860054825124929909437889420661186252079404634316487875829879822646812049628553427671862028063234048216649609489152443133397547644139153089935839037089081564997120328408000338332668220075278055273324405378462077779983450460877557291548697757617855419004585313647294597911484424792840684286102116895591864592373592010806167046353230396600440480774778356284359752093335668495625170344297461383442351977039267058312243441140247053615173973636058414421107345647913452984500807424324942325283247547003576763248787572865907099613092301227398158143694625130853334380860013069845459366974567163590651945074209846848856641973723572287101626564889932224867911484468970699704419159625896461583842383012907271817467013492086289432112026541100431469313699272648859537215659188535779483112500216883786059156795995288528651165755629630739637375360168708006523922125069840404687711245355634810432111483756181109259478779314177045253245638603849488313532187263789422769840445798271092150379428835763958168506155008873994935258901350909708834096377167419621379076003091115010766491275466688346350868848186921117462812495374314816213699792648610710421382097088983415669227055134458747876319282790267226748699366835726806166537697500693664893495710634117623830407701460005385507991003195058582615135812172152861043246458099558334879750713430975653017859220153179856070377032934634043739286361872284115721674935130698172306018841274925417287884130322280820834820789636616490721184820499684796530346521537352980078862689669621584049163575661806772810215829609293998678400823396829767961463481456962014110921520290531419409155568042317868877160905702838457178779714226851984839323353904294002298659340396481137871930551192905660637659056831385385652302493101311769860180719085043348707191919684902525477684475052496165849094422820996979465679843232118904475118192230105473376612917501270010321702702890836300239063874180827726528445628613950773918861790529005962764168783108850981187448037161486600238168438403092876152163283847408026907183711494638006200131135868088569737862014260649142022803952810405705094049015348897987532854312529021460385650077329673205999518844259419357439679724194212859089843611255150639535636690184367281391311140050438498551895896675836376778252055120870989077744943904478268398343530228242972015570100016516310216348530754587426337932413446901552802287648311624190107621573325071802086176679389802744509409109483560580553334908296677155169647614105594583988929336838683820187050157398301248010199221971590367502434675013318901842395291360283180997893827474068795325749178353376185920243047777477493427093350800589158957290604279657728154179129152113965674379120695839301121649361384243099677884787989851189358183451813008210229754869505944393314472904084375405621007935791298676867940822780308967646912801980724405038893304722160030198889779175375765471826399093422293810083061212321530642986717616248999174245656550246426978405527596068943502619813452449508701408578232447312933277183568480432917966643596921381709679052801914223530793628460382329065279464350815313904104392959630590725244054040807705719054714633005078618748382707557597550404469093496136753898535438762186691068666279229097811362942501802394049089120653050594901506759176173340590417846384623341765769085022197656069897491675656864400258491545251679511963215703315002274198722367958740632263490622171918407092544082949061122005024681906225874665820070653122622064126359787370253804436856412247785270917562584759115313039299566797864705277089404529801361403608988969714963508049426458120640820219930413206593327413551668554591476704700505443119937476720044836384038378057189635620511207824149905712894279319263415734343753389554208245083424470257084651265073010709290084118044034697571086093934767970160803430013279569785856529426000481083112307792630291945557155853106438953607184453826846890137854338586655032898751649158694048071885182761813527958615404871350246820138338357592132524748137214704829586165636755578614069305832496537512582367107549313154000933399237884122428964884439777377119469335429686216467218148434017068948127189499289747745974530778435316850621532566330476358974129486997933502902577589416408555855413462657457413573773221033141525893123227693346146661379516240785683302358234456806573320739131070996496464862187480180252662565683289238632689929539168473425107956730052578245558949821763916496224824719624748317547808032250756066693663709907993432757398634332160909496895112300848562364819082254443719954603988365461038257847136342096923496678090032957534078788782761640163856983273868915635766926437079943983680226585257456516486503405047818012184614834027711323580925606776769078466808412861163071296397519023002742858443118089315001246501292442093773413349097589717760109061683491956369414442341487374268645031498799738882403303560653791255204558449109324678063786091682504778650964897006971815963176261902503396221565118474784460036623204559036849898440829919181024668371445006666708558367780067712095913290156246916878377055516258858096128861865241863670558549452796053765505596013598250506364790927276751101639958939388361522790353807675014199307385018560552646099485229379159051310607874091615767952366103376636761332654294953423917626126864041967923660102579255478396197740960986933512704818424621644299810644166215119178634230996645696506750051438470545515825860670162323610416346618841091097918821685213503566444307093584004563378962726119474964392581307076076255172373183758574036913648565990872228651918773329102798417602703097846891786437497325648208479107390788536843323700174769708960203401083911288044383889636094804969810960268555652306090169607593256500634330575068331920989421397108871892080657160332212187987155090190392278744545536765080826954961083858552232011271379471869374457310822021099745620237453209480987522767312413083541515703375896115722177531027899447607047640930059642629726022658347634726094675845428307917201252698152526331863361346822252822382550270536698294738550581636293773895912125649715823985365942475143777643781371806914686077447764165245397921095072210092331829379993320664105379615175573716102224269211381909709337649272376247138310986477436855762306959627208526881406004388153998560855308611098152079317167339991884588390035981449765942501583991222997840413297525173718110352701969016885180395140055775810524290393404076320788953769132007419846611309647350883457596305244872257870109440733321374284990222119664760444454412026513077141386667018375193895275062613348458650211603925870137017218617528049705944229753728815677716830865472081494915020458053146494642147534866377714600388345718074016909998091118592194022883590573543549277938463839552010229585017946592630944733466215420899557256875944973636565192748321462087428356748769828935578977856449174198940645239023162025414550826325603711620925480437855171816978156930669180100441454072302455673081727556686898923871323313968259474096411229473688267066572645527706614105532169742280433692955498306486430940423075111971508983041980649976109787221019495634091811058926430239176980211270863282636540513521158213216595180575925136558405665734801078490013234488200819394736184370559814627545058439459729973860053508688383703961991767558241013086977837467066065288800710912901827937841287925619840050244204063509422947138574984171589804964336450920371888199127979980526423473256181104415229035320160808001886685233360312015546797362042203743322911728778189451911082549788693065897138720015985423372859346789489584470228665191728303656714762337980428013132541495438959117845821741052740565886503068020784881410383263406733344190146693083195559066713640987495703026370279016949149552511125806903808008813394245471328065404477052049662247538051531440017023622919398342979154882570454968374104709868428468592436885068930346424924354542170145828694757382377048892724246392936363858764215384612543178912575448614324529598722454911575454137554888063032458899678783565170004582966839514067277783936066937915834350668050763501415921481910517170601366882697461001819910966542346561547603142376104431547140156854828211382235905669811184209507303906737696287905919659578638080308976993047487184738458498694840468753977756671956151716336824028175543967386760524185018707827093949852569274004671260228513146399795889975012273246118674096868932167938589992741353655555657760516408712196514109362642885796026537750923634001694041611892661556594986256593437477697618338573513917303359331184251239900179653067700019769919920763119741474923635895675433046956953922025410471669272732722837570267582049568031594405337773827214210583400817086560099096200335594168547567854913897065423205130964247017547593124379257338994485732570583499675124416792464505480862658895457476995937573466888850184989684050079467477330572038739166114798701827204721964410752077320549836348380694156583592295358244237736001614911403026545505474832957903237627257349596016169077511995697873210832381293616533044944184785486211219574587460454205207304753840539408221014730019876031182347105033342250073240316252186318596677791977903881255104276812504672037220027632799041507922628466585240801058045329773455251540713690698601358079372882743364473684020225539059635158072507568345723963542692206819816707180450835257426213345254473339576496212701247641340171302054433467503850859494266324912779905949701769921226214335363450096339447527824805947912628224190715149375853379625862967079742179646223451218002209771436343949398675346411274141962960285986712650138886397905757795485084363953862537103629847790022047703189182337969853658947713458067398137779819543858172503045156739766326511162644272545234065799003392827007364266087174924422656986133144663874192945003485797773333872716385179059129597017439895784829023149278624718023722110507151898170181948195552829122669858173193140238298129774904955966155032320692150690717941429128207010695562675095522200690461785591179398309775705071532835827692868876396758352689875847950708992714296290738282371722026096966019511443269982564443221495839332803701427076998982204567565141336764309733566184984733517291983937709505463351281384488633559264309770490849051486716981043912270535723037622053242588269174537663958744400600873972032486611513247933475477107835245727158636059197274039991750400909991750742973931692631918049510509299130434096607769706468771001624701256794891702395344278520528481504312167153212194032924190979511752063354265337244225673510681555596646018784745370019227828693247424150447725898174172528921075331066614948544435724067520057513295387986316114770373445649061359974892187110472978902710987204744179665276624539653530241376188763305906855832318252162351892484931831487769707486982125536212820108024548707622193397526533042272454440175617386479235344072768763781339430776718569890331853744916568159949888864016675510474359540789895372488266740135524241611711069500697641961404011323029564756264781022807699115625931457711059857452757721857737291007396714006224585023909171284524933902002798043029367209430259082748650174022822240964098960118998858081613887252309130407821126396524527325753729720690127853400490935437928760016258410425552616280688189921643636443381627085045572818900139384646643780024450618156261583540306867666094821570275598162473317891135236455129335265829476827150856903137379178679861776958298540744639089041444149794565053335896124338502057111309135863523510692656507750085995295946856719881418549807398754308003419044041070189469596302705842351797190450423848836665373154635468727260056760946917078088054891310605724424406817808841183305875720740594033846517195094911721579981105642814446947302706100471396146475563497648576341319349523088359438879621905619011837057321867320416540010556906394549660243868554280917396391950529559065600699708427269454626556302717363748504524931897475516028095798565304805289908195741206980120124663364211826812156641155131596314655269662471668474759828405090058487517730626217289883264140277231243270202418785389471151640052956620166714525103803320361221942532658394292292833251095262589648415181655511718345316077841497313556033250830518150191543559373908459923124147470454947947153713487632038340671199763699368908566161967749917746678554507460388922376174462033689504297425801583391548931687724846599787618640659431201171022379709735999301564529579168494499376429051284202114617823832824118790642111705916546678492117616052825863952223857253790122708612026102013447525975091604857394451962217647075168044692978126221696871001700985368833897509437708465001317853287555008616137202584528720132268830859289943226385114391833675058459293542344540148071539606550945006401985112943006669033845977905802843591385409706831207612094395802383388648426241891789994416464462057181295915566231723702039596329928745101974542135091907869705637215446365490673611741438600153040544983661112236718946505040660454640097097070656967745350506737505542647260887557305763819325072376132971743572839684264256069018454541876675423678822408041180206640724444813650459797598774955779049371411968939046978820950460923178934424507369553499747025455400313344686977276406132328250179337144780206120514610470035274889641769294911627234827481083449028187213952766048241819098238910058681370623928954619159103952433453088972148568338142563509303827755811357219948408641784154079765680309320247758004282699763367296677507112229993356300560089438817238399498391357037269524870674530971880032403974761112625113164801392269670936527745353543250168649784048939985247833512537549745370695514532153740737214191357521754330501044856681516056509914438000392766426550870327630565691205037696389697669689652732025963471284437334077031870490728529458287289109997449902996567532909640741712954751365350786693001603146735599854784750568384830390023164607152891839485458562626357321275138002011562188243414624522578713560764736766753394417344054721746750523683466488571950948395221210972686400232133488594259397770139941867526820246853119497664243487106541771021498123489133963946141298960944372700697555218394174318147055349070036509628400326155808428283537809746728384880478895275189147034683232625992353551165369938485026952961643999598520557621077046234143895169204670542142197157821265554826915801863596553723588062405600946664668685051817065836155353841868418566675658650083679413250494334466845252521012425617382432245783630903952511724051624089743923134589631945074590052243883034927860767441387893248402104932041022616415562178315718243828073057905467951406190156804131757950405701798858227938262752429113422566249043190575603062546751985218832081265765823390733806674646238856230425824831230363997976230366161136330751192866018690269611685655694887345240004898051889064556377329734093503038664383544052715299496390317959540926746416835177990785423394413415078873203452536197296366530276692442822776223032863353630122734861206681811811593467452553315560909119065273087143462631678514527278268120323253815796264884707307059509346707801441196484203201459480455530193156610563842697054062579511494669032867741264377235007590571002707114873905988611344888888090472735540064961828698378893668760517662882310200555968786566288967892745951806990067900037224154126405092746134267505201293752835220525828598406560203161741320605105984299674165106368704134725280523816322490678002482019761469836826341896852750080393856033268086455125458730844340309205747289792077506124328333411707810308495787353086630795599587031865123936583746297608831490413222034105542232440276577471678261665178073455804715282127051339793822167562612482386172152599639961924091172206278448826426401192731324290843417096990974960598476355271685723714567556188060022277406913155420156955745660137643217348987420357269700356240741039003811111441348756816574609771328321564045272844555798926076932525991945733746169949857294010922172539258548742721151683612746025722951281809486986653676470726136587499670757190894749352844897272217492581294313593328618358932533955905841497185722870905709954413259421837524235238327061618362084853215394072270023531695377791208631707630150214159673902072089680064133658798872428050827477572342578580440383424534930758623527664534046140241895217576074032490818300909007246129151005924719781303169393268103512711167429974386100191409089004841788341427920290001021075917556222642173114385142909927424582389776521549719505960386514337819532169650173967246405035595901905391446233814119984623611418389034937343252126322389980315977372807336143417895407936847780517051317846522537580453514711788965924612763608528081914597768708861100432377111997138950498292791620744606825735526943906190963134406964404368921880969024893778694434108303666458486573676302290194438937136671781936396362935500668467829545800383283057442494278196770743756869238965795101363484922667707449607998493520977431586983628942401868347455191063252280129069070811542977882673343604535463090538540299557661915585067252465554994508951432530991173730974632140995054349334254752331480236964453882434373089503764987335583423362684660460518028684410463126891442137843680730244746271834147967614927497674344983002106633456971572585240037979965734956251779668718015199001893590440820964414065450066356423000110916404208486518014296009298185542830082142820368161470067721936315326662111734790073279671056386650081467591903559662574826590577635769783424771532206432265771216381696885178277231362207279427630750668299298081572096343905851732747115206758912689963673211980765758611690995018769137210465420304750142923309036330750861943634831306071273963292081784253300276095317412890225836246077551849976151300627472956699707406177825824888386198511370361915224588901035521718794729931740166108546452542840174880191794977349420497953166299332701162604688995421116070576871023339947509311548266397107527318902420377146297132020395945327912558669654417788066486644929294864147498704304912268852738739135506947732489307158985412164394807721633490994704047308720208011515163413352221080130316908481998861264390232234617316238653742557068159273904113063340102443160299953955926575818208169048440566754941135694727274081882922148762849511869178352011433240408227365771273004024462426350583372642586056432018845212451168804597521738680874924750147934892786135486790661324456664658345980270322039775027197531087837107756051202848494789489419191712519813125396774948423192603647134266427548076623364281841666658334078188156327747732473954610837062527002266396099373481033590190769744675391548565173936011549313287891337562925594921831127723273356287271877668298336743238853873906686330662701978883077747809956035401785417423233358630429880158592913106483752664469703306395072552991605323909507169796343491323426951692189625375045071396085612820543309466441302966718073008667300546212960756266721056243831683959797418904874259980572064282181858262099217314313810807121080937194487996343598612048805680511429684648806991267107404609552023452761240729216539299410176010392997643789375241841301687509894202321487676905924844512607576053570222915650162751622060148821288287961338258069109810305521819250671145200673712367973174391825984564180194297976415129481357531072293177705915583990928851036235187866343846250914419482653960858779651376570817138858147577475219302210821486324374887261730587915764994238663633349555388126949271460913831316310694606474336034269354082355311877292903229183544947062912715544217712998448897380712367299977245381463205349523046243400769932040290731265598787272042715914339356789750229428106733520587473083505319666027519998349543495287085831836963607572325413970227162378799039913627311386351043622140333146522676724755876037237683449742021987158446993998307293280405099643074480017702594137323384916125725162658831414479409829988760055860316142791314237901077440737911006551115888548494417009012476738935555103239479796713677643787510907569374213946383309396070988885851028613682506856476846843662211554700879998257539556902410111795411622876521340792674107662084483388956366344105316738689687685831481257764749735791684651743271311959480806235757882203743084032540224362537527098677569177247388739893979124659232345798763519355135893087097728883000614419330907493209537310997606540375939116728540960316245909397618611236156383102748321608019439880604523462257425740608071152496243531837180127906047107336440048962317090723235037003107177881561888771551581893396967172313714982598813653061086000475814260319297961484941835972134510743771836736020269273682831990336590758703491485871584620873053392037770296247712850024749733677357468170213129716712659088554267476171651741925488994107625266057259999461441007316474600807465039597169488901978700317902131939370273684770032062666773424914948510088421047074773704567657170839082354188426320275415478762589253780271596591344683055502813210042171755486662434606478428259681204422070017833959543918771748712820516740572182400653611476130864734855732260791840065616905874431767945377668723696236449063964061564555045117273750026962660490840096868026254231040668991797111987346050001277265875526720347740745863627157943273936133258108140026498800571676804799913337053984586916827011538431646288287064308769627350485020816634253017301956571178839467470054054775653753114901356165909183609387877992531376421484607457853573484339858308383536603211311177254042017142089117662866422999532406626224186440164209607382576858925036124116451572679353280066077378973056859583701456631139586511090501048993380449452156221280217649279443850662335052757310759282871592333720156419281648765897198877655651947072737456569625382608551185303267460062812356640693715037955649996505915762693620765311071378902482773765746538833790653298468331245988345222108783184389321440049522057095539716438588988723816128605563297751535651009915827953433034605214710133244471231236583908891205391142042416304516860817910922602609156826460440029516187660354281536015920453979797183497522385206018356908647224248669930197425023873296820438125738420058206145403255780437220173051549101338308826653870856057638117073678236963201779697009247010488948675877043421518196700492596372680807263484239440119996168243772648972255224550418358392835074156621207711207632888371418393811483422152177163805628711868443551817648947667967552375277457599217332762141900663616686671129856008291166487641503043751207670716762927695645105119575451565970285934462618628275381493579558594661835488536370252936302279520566309533682881732066022587827918142305772182890816529237849759563092831751029970068318274495420376032851236454842786528199914575307274577605398554755203936757328164252096811035978626010657575746076133731113824327741950211098776475954291376871568212412432505561623088227036410445655736307265084950008075267788059583199197209823090530694203911804208457538963921981860915614316825748230364024812786208429260665126847075208102127238205116296465757173826779446540562371511808817378649119372699480033436638053049131177298728752236963744204366968062864079427683622913474707191321521362025404397595579069781832494701165039430329726919143273403955006054473613402545643980813547442903834831741938743868603921319765919199075736483274830815204409674704593223226257456477462061935473309408981983589971704729203927689747022732728537439782913346782030098178147681587505931983099604933210312112969909198939415270643261578393500200430853658291599526841607447219913999340729158377233911957275555076118495101453450428379841083671902804459685554512323635743640271922517994724431030960503727883232047109337736351634316866263524434519259929872770990002016761761077575409478602648317277595951842896547359069573220878950594631647380619100531583927882488329874236051074212005808572407551582792232637372743432501510332562199278145471016346668573842961726422402188021216073727434184743290849152894394998125805394901116181462563497479392359043260675463830548246840400000912181864195249494739865992704177817324101244888851843953211532942227243231545898746181507614953820734596437584226967200921033799782409513271080197564103663805714171326076608420594131220615430236631944588837604793953285599331423523104704944466900864796982306897276007688850902213988860177053515756672718706714915327772052202964184120429248020968424960881114292068117002118838177238401200348834468172223137655061060704731641353613873056112218026143907143048276671357772222592955952654809605666969561873737536705026666641432288196459700689188666197616257649954290991541707420902135786181665455134437033357830142793757893300028528643914300998036751356169144475280689122285433815002212762826424862698848019775389691001481503693870233561419377861707524438991668487788503686139087835990086516881216368487862983212776084760162134901719245194551379001454356515527204338127378844822306410627944433110731713805433168059383707360774326742956050871373543987368131688672476241075764099228190638829971077908414503141300018674474534797766007611393156352572683002231743044132119761766591075468279167751840686087568860658754888566521678365793470119396427432086616374884907893010592389095886516533332409074136855819777467628092012798265443788888339286501274260402844441186651122968246878266883052804368484493533368405112296935572408030862658203643103363894704860701317783707946409497364021945014678368558796486785996448984450398002342923337764920552959979629300239451255011724438105175260778690381276370786245194103797350270829034574906115096468059486694492733268771053064216136544846625955647276185895564082756541391872241003034210952455037952888338856389830038882670996530730455700448908459806738765859386688079400394214399448216110376180773311093327983929697237752287072938364413810583363935249809188088758301292741996120094248323605773649778855652097536409126607877312089727880221256093982184880954137054263998650085650473334026278846149490878005213549932019674869884428640946784366932569716836458135270007482633200201980670248846419416961188413866319482007599863499345279997147131038094157594478675804449566594289060762430110521364845380022597547540352505075715921130732519548034146752296633949574885710772927170028375103434533187927613655913280285739404531685022445673455466772308914920054471308707346226778647620615174903273405331215597584442967286339607104214207658300192224418783543998157941824722936282212377260094839708859647701201743301381398687301679474291644602691614650300379855362013545839750556918800014870649435499830806930581022255365862605213731109194481840670189047999311412624257451216247438475184387395950485950616456483495329078914153835023584826650664265487583803292415122732766952612226054185162598821404706328483694660051669339501629941212281728007844138365887705629061619748273387758225644970145322452390405310293144473858736348799126768531633782383231482117725817850609326337621968530491471430189549096164503552977088226342940395649671103580772523551927531226394493809817142012804737940288152278488231273025186339544241217546808415633935335964173429509850545760744897581914924995059849936228359558755388689229849592042628652698890592198255943975793928808573933549468964173804849518822950511710654260882075242815338913368352841746229625314067903174827045075298691028949992588348176320498120405100965356922654062802327381025171740420888412139497167566472463171169397697247182508294263847723947355875741995995059585785638894197987687520156153770246721338841218400018755389232888295383925035833843131597113283279345303197149541309445420691276727335858978683538429037121736167577033466572169849430958372809172648875978253206620458081658125423334682223931795292957306590173580313920330498229627638488986054801709783481123846170989134351134039774057289558725015732053184698565992266454622908478781144995662501867553513235384624645852757926811766656609728813643284662092166563958794741156337657571591661248444432015699360264079560581602666396422799322119608794370356335673407435693890572528310781246556838997361014660945337539379463331752125371441411367883971532827435980082967883047076970244525231368669234719613189480979903109789544614121315722416171354131361317820551441875458319849511908462482472112675080182280731588688534736602782387240028870951617586275592805298878746363456449535415037054909968203888918840273946130860642822823400196649757285075969647492283321152336443874894980152399024568369907827150392981770798562593686470940619825120988864200919486573244104190600173851572381243142116590788391911233545770776786510041671241528409530101428590261441699233727179213760795306138894123401814915138352997915611230969724508418073943524042331786399157400147044475572058532206050991597199742982179719571525109427419160417400437807618146527167803536413834820351173085217024725558624235545316515907032726910309734396583219707863583675007602239467423155023664871877585950631481671440318938810740753531949409573333844927868703409872912593224932130032173755656321894998095593065471185409970486459494868714554899309815863768217573486480517031677461229442175713863236616105309965759346200812060492258154865500146938202529627710706864642136619510799458490912105348839564720788725801013289370612523365132464649875828720331860166709826902590366933376626256019186035871235307207976753806853963933274834145555584923433492432124297849489083229186724772288044722257596090796399440689112888588547304399240832345047100526986649640987906330216134726899130267809838350419867514904969883699628868506486124711147280192108619936930962303877477335984178394272007192317483539794782460580465287696557000917923377581709873948992895843081491226508651277232695641237715324990728962845199489716267183808844093565709208760473816475710860592744324242399509350700350072113663283942700622174217149991718842968792637748390179370829274150704643383273063277246215260006233209146272415522068170663426902065167355818701174554767919986843349662905414815812706986246034751334598431027932789981035761959922885075252071827446901878439900273810524962112949766163679867310551813198289263557187852426210380890397510972046614319673865080417397901377448006741336750158449878140742911872345399962524543552998004794807684719967319994696075284671964084459595584247762367067080569769874881481287959282579270274155407199814436586910384455392670240634853194948071089479661159622319173352538323687501433315799931626442775300917109176977895403339032418763498045464431558486732146278026145986353109037488409990948555912131966574969852819154232238144219552926231265037362696424731497409454109309741584673077454681504994393602325783866162497626949605181059329414290834489257564425981474632092522653561728830436434351017155108003084774516617794376078161154104033295334163339508385523913944785971568102367243292572173093152033272875316780770719986301615742741229209745364317290496943742386804871075627720310811271442740486649289222406480114356769946274355591866575064349939592535094185423659074541981758737540505411579780631839609119114395562069517583184589522371966885939204006554438179547254273349799331475292460648823054232259614634751804854913218775007333174888857929399973400122365082951514945576490085344093172737281598860092627648792576816754192782646319336998763331819514380776985728048269785260734582776255956031659826147011125173837124587185665789854299198813988594839413618603411213225470120031139157520294432047755365547777283211485054933255076499245158537556227105561565538557960612102516182148063290857541842118170132705859011172564865176917848093611925995617372130989019036486046390919889112094629861723583194468036480143160382814158430914489019124361018000798905705845166883580960869249748539051163178153924207642650387065805736303891839416747247934107771568453520884210959066548187583790584178942966704332960742068552028549969116784360566293438830449148216031021509632087413499499334373502323580151588024761689405834254878273680469574331555168493246493261043464929997635859521391660545818310228287800577369571892405274510668341568232870298070857821642561113165563064986892816140116923371370244286134136179517446975208748857433538094152153030506604743028918085535446852111278035899558372670432138270312184624587606057788210936122648365078037820578034003325824421500152647314573717035481524731426626223634290924077080835490305491695897413465219606054087790454161157617982908931138124185425269950318247445514962462868155154599076899182703232435535018929825682073598046756695468246394652324946165963530539034251397932833814516602229438783500481454725962348033048912851586659947886282797594097547778173533023564847733333831129129525691385831568735844941322465817471296502977123856093480057218908313767393880455390898112245952330932404712135995031880201226436525522010106368347746436180219809441590847649226917654435474245197346474767628449203101002511986776188751181572927523293447196013012319377848445413334688867990126368288633402709629500247363464312793555915642065568124993506376418754375726584850677310319778682391565753703444751544015859788231190423452473012615683619917806896125009895369345879366906327964669164919618437758795327472087937369078043306001324073512307715044042443899431294671933376424979479241605997384525665655843482118916460355948613890398822671035506888482202263985569176367040825577756614782868356328755892725096809177306005176290608910925064771539238400595179217037120754731469258625230228794215631097078865535888818342966599762258827691243609827625489668093809259592329243298699558957486585313071806897836963282473760362908265852199421565751654457093948242810326561275651842111645629470301560646879192467001344532751644015451440833744471799574172334660359390240542962723346650919743219583258566105772529194688226321601120602743325030229098301144202021041868118555886637956843811196762970568926376491604720004211817411135268141101521116390297868612740148450630963778956800879974993861409094293596011590140021695716349571531092032913149525569279127059645063745277176869695167038156148741151519135020561587368249072513470678426762344864007820516466498713509215855857188023788872908751015988573194023918250368227584324153323518140084205444719855761138957967774977357490794066598532946642224815558572034318963156988000152494608535620258031420898479849120460830737702965569502767490162039939856105633257822885464118283573538177738798293758485719965529721459590583567918536049450112503196045204154997761537168534516443427900047300971202106687337734940323539839959785776402547004287658804162273897764340557193782735819524014755403739567176691384719352544616169571228786816460077556430543928767872848943088508329701129725339506775993031666181269180433968991294415363314023149389401105444584722527141920237241973058048339114922145241555614382337505239355641974819497653521735066023891736742140720152195461644223579095986027726141357669036709929451764617380178932585984058643652938363266246315159961181063159651859571765068262057399248977104118067139234066744080570632222318464706054641628089467261807129636353734441721625838006775236463192729653710098694202605120024990861435373203340954464071071371662013263217125044781567035441358391875822450093320510675041149586359215720856432156135997243770354175806235558719276884721351381492251646892511836652963266006875092656074182355926265020719955294501663057330666375569337110918695341308036885593354587379988962392081256712667266817815475262273917400692844957324260729867772542053524558065824093645301128780138255719935625986494100124054792682244279736238686970033748166672862128036534105726146862950214919573487834591089871689041547100619379194427539352289519648730461768017964408900000302292038170525212312272673669816712365256758144568783126448824548915687509191945445530600329024696416322273806678994187468249283586956281435549939372091179192193630294588065487191080216656494149549114285742442581492783670674980001908705443564018866764039100374999021373162639584887514242741870750261379773770554301772157627880563495935624209708295566026604370145202477843125566117352173614417319271848511497506278245099887996075179282331287083456969583468204775997627204516598529908580580801176325655407442331799986123729560903609841492896872016045054170112866617475635425492243328197506604442918934835313546147323806109778339945597002048152381935204254957385283212575245621013995356614442011817414183408590031377087571930731585238381350595196655962206577386671789879300001227032980696690444308870441504319268352752706297009200514228509542631120949232064224759198562881017000303193017149439580571020583595178001202531957153426624279143968477173173389439821022763310441306148982200718422784716714621353733545779402729331206043614852781246577546560369059918797492910336947165240316221103591216982108338303538140336371275493144101508163559948852348270067859811604560521864511147684764791947732370751430842971373376338913974352272260040725523343538704066717053626860036513313627640457528547164588357447874926923070829796717063470353732259931024381443908475038770546940607251848493188573410673966285740055666445112407799630098013954207500888250499904788314335074522948257625644914300952528113217436297370988454783262429322826467735688931371753020236400492250006167963411575849647681870678041561242905632780766604427455587369064947394489470645144816268046846718932137526609376560401246485089394339484797176356941507321130124469316221567766846700754649663583058767670954415151697679852372755227300765350581774320336397613455233305631719112867835196015901851320211087051240522784500071321105214614132284943568974752609140159889834702316144707115021411002771975042988659722260917522151512263679507650511726931257706768402493491547292440597100155210850643294450649014057625788955991510613005647778234784099829884600648129551214647543837746240838059028390330696219281582917390035556123369176627394052938654376013810134201151425152659404938326380406883702579070422035066417555238058421642235897594345691453416660539201039317361305766657745302428695359792594949356976014396614305214351505577031456760403101557994320398067827939525262937000770711187803056721569891437461699214194896923846405085429513986850443719133897643341359057183799615505682258140106801986857855972487141661571739715145667028864439496303425539979070131666761185386037419675681982890021029490233978343551300040770976633801402136710497211737111526614600267428672819123633910305142175718468454768203503264398985524732167093514144592113210781851120054873882198524252136963338616673610366072876415495183966068193714277393330011876919956844704434525580007408490649055063176555428527632631102957454068191906371760164047652246994200840239780054612197743240171613607548709195592748386874093436423401400026981058922828305172679588759906006399177504604387263245625210744536881945902334130815576459791787566864306496977150290142972034447602138740253397688050382643941004387047665408433644337556642179476038062212736593685637908232878779334033340764144604703425145839223994688695344490619037736205528098559858213892929788652703807748158021931205667527330092096164347493502440332567597293123408569636041316531758232284722075671104885872996091570949403247539918463901296275864979901269754453215785687692626949455190379501335424977297760038231003251785140027160839384479259328563479956665686143069220961037324636141556158815131655460878709581221113382703085298089198153514934513452596374371773097245842994444420058122121274022683832923414572674500004524666705485187207596895261143461453652383901399033173957573954460417867277096373138834847061973589822425519366864727949178533038575172010259691781031812958535460420912660230558650960621661866468652683963663983414044018541529253432456926484043121374748074466560650446246235918043252939293317635070411267304959041643145645555104574385045189831670426262361833833329522587196306399327070305407235697129597340754938636539873979061545851696684899558898031105502978774920367706066410854979806946429752613708837746724136687766075694417544381710872192645046691928644071320775415774859152589096162324512674993864476462639600831629235944947127877994434924239105930541930577761257299105410282954356769981868403291023703518609452141103458848122168732252757434791200426411395693502007630604334045255071497395786163109523641261112122549256746110328780253763336135227086468168986276184637045384301308373907003280384661888503554765584234666773212078937463001108201229335928865682282466317561065860499186125825652042219643764198036397874574630011036854539731439516191657625451767380780370134974792983094989742616653635533203696636898760784744222733256362184225514033429349394401009687984631267146869034818424024123866559236695086062324924059639112761461940397128597748926207559359746046953363137894347869766397962559084816627882002273308284366562825161271968424926459221822808775266515408185618173604138722013466015075566116363519661907993613807751365632541336800957232672542021574712352411127559657750754546616273203209092930641474754984627580523553381578489385602868503623910572296253582650054370271729207361986989731646633048830746343867162761760219575981127876057244032967871894815988184365245259316668128251298779101920885917989372118983840674282083059579365246143084131156653862708221629160218045213659068304692722057085823826783583098337933807726891040311647272940383232768259966216647898310965886422127468008990941229070857163142065869432134761246408559790234850146089269934482203892672826989067789193478844385306911866916579153753720449847051097930964255112828585175404750594057771898748485867040168394585167853151744034786026779588500466467678044971038251151647999754200646835211606900986956075810550755327969479652064999745877470685629873100683747783711236436491978611409458809900479765347101294487078864460301557739349460449507268857034176818311402671026099713696313684752579618904563575260806089343500328589971924314024135405098610878428433499192591286231090461777088068815031221178362117738599699857574069724534614653829120471509930766349578385680431005158690887325645432541780834361039683114824783448077771084333374821652577227180239883268460902848427648986015975099395153378425630720472979586768317483781254425713821685501572388928229933963389275342705302164467527234155594747371925326277511111088486443938633378087002383558891957762208351348544597004172727571447667924703959783098835280331896639226251031200555726089661008898294511968323130730508590814844320374987597004438242373859014822676510313754829149193062916347707788493402847199657590217431643507399227712208593619989715407649061604830217893987054926690107778908639958383056199419099029705141373534459612317634844021175989384300669741561300885239439173585192015223976447284793546521992477034990085823527767817411756760702075355733887358378518874500041078043725320252676681370768010406727676148583632052848195844968481513082655925964029728107834835721528377153004946199598170972941038246400078769446401572450662278541449030254556229767655842510955383107105419985762990455746981413019784861558969809090851959818091401386169697351879654082687394176797719056854676182148485702281794376472806390750122254146339071282333837307430076552454533644168997413959312091037708030788176371913348876995988351307371706560059729604419952121968608960530936645663062716857267310974729545602652802022990194231632204745435710505850994204014999365804125398263559299050892750993688641248443620885111629812573680604549224870891944546970622650178828667641814237008078150514101858913093781310192918506774941921626834041614005085470470907282469081322689384008609675457667619552468431453636302417148354740182387173358332267845639694854370973279203127001774713643323424465317285801385071616190205971364366302645988171787218542360441496595875484341589446171958436399784003160132410186278028101859993275415045511832837254272653145049954901786866728651174341180904725812481008606690141767178727704134114031191670210518884654138342551279719768404635954195441803589008575497036010168468062244576054106663170188403895341080536657547509410940322866083786504561274225884636013088344517883957929091600210685322669958732276073360207052725547163826145196632255668681066180459255361259218399315882440011030987646867132281415190422058245709498553290115502317288456828513538616559264196079414431384726595818386865519129169018292073032383502209565962049220677328893954636327229433710421975376420468212914540552170208695271358384605225601227515850043393624749082913662623683488404833988477425434782550299689367836093928954078796930262916293240994889006900766099836380224346520172209218219038616560293022744890611195816260663942352332123346407601445536839488349874022824852086022054187316443233874189508853690816292913106164657522125862335211562306107022153280512811898918772117556662549857369364014006958977422910490246339134536856040037849349005475294246774629217428707952070507554542215977576050763641899511519746119661022448751370326584466336880374147295672389401338708688282203172946716758813856487033992610554899454333361869612268721058826836489892742708116615338245930232978421569773130703096149812137766932327546944456265615409484851199538606915699664802184191414910502221496855783367733702237050849619844399761628806822106707116548579531240151143464780568300545813384790341580910649573413956715307516695730603944957971635805731023243389519320526211103893523943064736137060994166321471334437712174744641562956911071966668199556990293666736414713714874595881867482283768476956324626157578914874135858040510403809126792235372641712623488505052980362371231043283150267521320915528748786642768054699970990745207983082094790985069144425174908787011800047956233296688453856650862077110536083520976872962792231334313433315986371828684275570729776717558942089593689673620710377489266106123645332400763049437519425274345160176463082742657459556185905669286629664270342301384484929286461341397056802277932566471883148697847409634178098670304047117905738802886291725311636950213442364538271070015995803064634813400470770640885312347231327382397887579160506363226641593288662611480724491333796387169863719936775294817766419805100200239338445856902223236681355528929587250846631831265341499634256321069714783082956886641956373068793193780872929267979989873621806267469919746729940511402248675480701853523919851512687991279964202873844071522331197762543717480924664901037107034431301473046629207407247514507666718209358334000846288850781107288956362813617379589317568865696412359567909455056535291410436417878386076347793611061486151670668491536281642426650101569888545470427512752862493648750736521135354056606095770451036153027797377331588823989899898106242096781592057675293723002776116768250656716475248972636924970782143185306462574858652018136582957022771880703740549458749752364310760821105966796807585551807416295852540445907036311871273675705612338307789071807191169265660825449758375320434010056739304704374269863905951480008908002503933298708158746136205004020181721368167661157220443451469652227845205009168498481192194876711296637987014986386066946197246279317520769645655722199929184927584044300617420882017473943131126455724414225195216230056461038710366943341607769583818994538761874463546660512026604155189550009811334224078502358404972972200721954223057356749055153392255146752550659331397156224267988463410521904096938917439386456287035156829239874280465267158003216070922832221898624516789672779560841561543501322005808744153679862525327820952130685730419205339623959740940209335564390883600408639760050220711875041477816471508314529873776276269764996814464955594085399578712958884911720322491778783348215769989821530449239052567328998600834419573915155910656178100957126729395354663436663448495755065209378976909715260552653495114429695382938202787817318929279147397068176376357320513867072011663556921394592968895297828060369046734827986518514809599723337227835765935566504426356957228805441534346329175009740520884959232790443266111956220125822378453206033173364344056077764348836234242597470012618077287372022257358715003943331004633938064958982772004699547117255220277032872147377106628066442055113231544309104900631092149058313948242700551040049810957207355522097088315610495136990176045748518368142342687616879408189015171844987198903253243087425870236067226436953506799056011421423739680049647726469043812615546707925060622867358291152215616339988939130262673910354986865663648221781761334944597235180991772713435751659819630483681089125974945563668503175332205215025460813306746647344968916128318151697291921885583537727620334209119713883496145304241795660643538534368396745618536306578387529085221517172820130211555142417558560680313022482788212155376666936738772235971578707377710933215888547231077383908956255166172564879035363688138350392731520289859346237403704866705960301186078675371789123713347716102763560644379015077454707912117145128460208495568915314734528583825244238866801983203704865989719232768036939657056684157313339765335530234493298803214186412408432701928585959589779492346694115847789446517110439746830475270361355685603567955168212286037003318807900268435447880962158900322512119401356645943343045219721859328262739315944388457336162333000374860939084382639256472741241459922499626848845790171008930673073992408293818001904079572822134585900105569270354585193807906041449706685816483162931727315358362471577504315579539378194474084791645604864815246891293505697278712948503169358033614004391646477850973959447708543127920510635020913194847017378237139969436136915232596706289828950392208903644964681077156876006299655239503034164735888447956145908068525053257747584374082910621841885344129456102694207856021500657995958956719648535183010573674210155306467628810038809976043624222392748084604008891613475325421383266051169043383067103492466064593604452084195783160048802099094104178360328549756870854861802935656609737119398705557925642167045749375775883953828300478505580683937666413430042110363556811102408700898167590339942155504817601820932871371057645635659590784664658279720066471411442961248213470239744748834688282988401754177891703339403406559710301345418417633954287192957435616453361396895122044033785377328628712144621294156392008902582357075886099589312732721163605573586820570116654497164834161520278341144300162730409065133572276404219574256431995642892300008536735719178865418922594051633114507342019968043786194885476606922944751722896887231850280994932724840380027523097197774230217195835355998672137940013934459160675468149953956282184042251545084318521653104068218579330721188867217198989178394698296376837748342145773054270757101463223274461074778932366605351214933126483408260169974112962298047858921833940838283944341576131196920881577626544725509731402333759635888232195928594099841831965064666225077798126846653034075027450468214614607916294303270935102747383876930286773081060489292729500261227341456955649707019900290373357950976839579327586012972618420786634086290884430972216922802201543220622774059475345344671121011182028769919269020600293856464307835421208341387155721151618401396500043599591540387934554638124785610406549821215974951805576602869973954460259344973136524071344991462218362731651887945644800146139658219197344920183781286518627957087873986067591292813313311999922152631274428089910213105283615601211180085691779129148345218706465203123512962577815811945685173415264793004566681525093726740320109084966963056592368584430598832741991588434394865420730309989043448964996657050939250281394286600438874265466875518547683305668031856405806864796517429866947597288556903741100049631222781713264680002384911392634604310151452352330379345718793543753350354613542958086965099943936471348759226378982130011919779929654783458414363104985383357996282567187305067235848444151731802156116666464787240641862943936007364593271560364038092687415430861212669590870224125407355672363403247838117237000804719664857388434356138115219605950658049407809498840588106382663770404555992631273251625655286071411383382975411059472212568955642668369962709687405636517065322536405720281089572144271593055814292907925309094610262072782175578508795376685812341304702780191249982054446615906861504329207173628120771611942209992215543127700631958245478864444534446894886121700295153155816230550821336847990528632214184206039308946838859425673645036192360472039445932819445614228948993423466757578198312510126689167096270984677830494935648752859207009590831377778140013702814423476902590993713623527398970244041536312590909845493102716863829341156378502652563719515861415635213384330663539345420617389178228123919753003479198015047919509446338567776075910019978872002432608932781150790931974079778347860867024828695639007507941697033147121255415729685388868921392462843128876663589995153466263725755335368667853313634365410137275269641212375271454795872638604701900509437667026558818355863295665154847694987421708354714872161823877335893647309079912254191167324234455219167298243610711676553371640918370737959051769976733537484570593009334496568262657314884545999937968968312730702301403945742602695617676290061666435149869921475466151634968827353519577579391761831977216444066825962538695244115847836466371300070704932313343067508166755585105805310584210948284800818669201483748186488379243339893975593883419336028722385313023979399994399572129665259905702118428014384734373434170351560681588320137812487298535974796287684429235300300892695928706842450578345278788311304998646446486637502593626647162852357663584783679035106209280420322335346381613038502575141903155083841767883892664889944898869291190017200228124102040073382444985453635607259989656504742569723405204221256404940804224701299047571397797384540603022399844225147448551875904838705764540075876838302731291345212835320195886358224891934510237337491772682106419326402913735513151763362453796572018072136695756634386398936202070938397305145208139487778454233020637202268410382192727663071318484239888780133948313497630228878410730648156083070701128854394552224280062490960389864808006278357457374154631398113594131280123605559958720377145952064522081913741927850724939825515902827610770603192611887419658171736987675446594549350921964877717304229795565998810949812013809672563320359614575572419343963698449053379680711341321267373063077395481043184079877650454433814424395446939736840203993126560199998149714015297236082627071436998799624123001540819238299070469225833140465505080448193826962911243998221327431324180532586852065364776138999355550817706916583575055033681259756963829219884100211589540671574204971250939480779267494702195583623822542542732738494151878622197217883650211426932117778975417732220074681420907545554317344359018120197485385007874492336858729847172829257646947062982863728910763958555060563404276604126390502757352449720864500994476863109124961231290581899358849622594665947356620171814477834170827750360580324062515865800014796057690097549443404929731097588405387462820882708228609104301194349397474518662332063263513424042789153489738614047885697855787730236376161651863181576008376289274586735856125154405434780231435153938722357466927110367861310340885134955789323459046557041592666609365713073268362415948782377104800882243825085003043516120926633041006676737234765035521085645980171257206380718381939383146512062454030360540364170178110497922726864460570441224172545842778562681925531530953642915314345796543512305745095351116861229329952575034488315995606512642184910171696643479920098244324359268344786776184730410891805843069284206340866815664711848932860539771034748782758269763032727108821375908597271183352843100421308201710107723022720220284317691848243516297528911533779364679755361932228770311957467157510823494990434476371099449382487994419171311562543660606747187390413148996112841900549570357172375113999884414749141516969726049668034888912873311507052606068313245341180259909204423616146593686791592162444975325164066020404340484766498685328645605571124463110691687792093457798328377712154676381400443990963494599851263085750015837560262332939621400930806397715083472353729105096272982744070950564369426176979089597936049907109329658925480551275361715909076652598743248057374091851700620113440064730536527525363860035979884387662257615231082519692051496962576604301042668084803353571901845412764141791909096224059382049214188799216546167142629082740309031866967164487441974376157608160676981418008276118236772134698996643947907729726601290108003180571186901190226119039042378949669629716689435325181511247696473076996931019584510561542279916840012347746344563667994437903707178680575707612705943735920339184151085623289889058700271157054323829480286701321340096347529519160059174891851394095765391587524957484298600516368929723552137040277926810768800725382994634554570912579529703871032047127671504783378933658955222304490603470916292913283307201693127125744229009381213305223078074364743844594406829131780939591456146338164876549416937031206381401745181083957796222533334037412859089822697165531425241880308897262351292421173776991446842209514163186677923472598126061893722885562264476077442961627287176541946627215306613621853549293551881950626933972834825358704150858048260970656520521529678764893458561155868438643531422307569970040995349792779797561739295319333392048418306457662725877620878922188455048866640936361184548191993383512338802865548920597728568971160200698513758281443045140313952639185651630701076148593877687753124739359061208461454098062794649250492214363793587990559648222273869430926615103019776479674671047839524152390139768798637250231857881926949936877948388112068522609981570160446852104246952419393783594001460878227846672302412698767977822130434224678930780027725300377761437305039484173463991008285216377783927979036687535640997258430916448813001327399467089928183987876078491979716977972007362446593530074056827058602069554382549359920786136416299295402151437775329726921917817608369525009571071965131113844820399121629312548958217744504962566299888691633989560422399083712132610077765681079467252778063171596890850630514447468280707832543494350999557118970868768297863958017530970284873913210058286934853618579567287317110657275287127809414276088221364139321893311814609562781874993890006995147961345220292252114456049649017646688292126119438755431237868086307098132290741474031391141927139675982088862368104737970186768497420706574107215723656193313205574723374807906277099813054030780584680196269300140369481555852428211272996491323760806271620040524746600808346487466970011511272196613885640975273591170481642845615950275919675937704366865769450605815854087693005402049227412039136725664785202872432019138549999771398393580749112493714111197667750724157731427596089883337237089227421792208858095290282749082067218511048061492260542355266273051288030244816069256694112810886379168315599775841669401237359791821391996381221804821664726184846527566753039651000428455644664260994266324742096130343239071338660999324021828772081387171743407621731446047704366524263430167814324909672423645475413378039324812656190026175251232398111007602997787806816051804919313131863118148695460444321806081093946045346923874558339933010983413282210031778186375550431682131153478307428042755473171893573741769337827495052142960155916942238565527487427542863812698308179349500642211742208548747180916617034458510077450355219154829129208253599456553833639808675671894703364089327217360801424611457242149736488528748683224127404500816544978258208848314003083359228941450700929240464100439015011844826614120468811900452785806951952552705679791444539757704707716721667953122144528993247827562288433227285982143379539705574285528909520043982156038818028911807920678457116863882663003925254873186116964121470568774284512477866398909411822703583425363995383937836178366995018129286094002142183105188255988523116440131474915201897633847663492415281520112215615308035130231969848594622589834638680286281108373970440874881720317298900931411957032230066531068789363707492547394840716782200391083598419940590493252901957566847588837308301539274409620809554146306805683469130533516353655897192241664062959619792751575070468129157175601885129122350851012575299036179548491366505851201445734235360840032951820264933607405190526965508049074737610103372513151818104926792127050963591684738244195508295937442159842623183168545629546512697553340828295459946793629433010409965452433301437052261225390870364236472604948591235586397385979709745710211035950529916584602050475465682402077687032393180904956351212002777706112129710469601480007093378747519948947384223909111269351485350634805294054350636346808143545526943921999481444112408736058247409832431679611544349302620007735434722239434694210893273130926469939011259854243431294892406248532722424713263826675959381238345326987177931047437772244992397792255382772140678468257157875696442095837211832270925638445278061567529371205921287698212850697786237597660012884071010792787498022539348035408737344156877114586644935581464391163373375008917436471278315302847727057136807001961664299214408743516404168549963121845034885959257570024941734612340505724493100645297019331742424916833936358132497825948867572668803345911517667687346279416599574734758291880458263906303935103208530828255500100462010215269867624742710213405260112610624424548983177442704585654864634574347734910338680229602863438175868305134069291292604213919295973479510146579807716813680909307889697182510934588543730520323397850447321046817121347269730744720371747127718034317323199800287182084604588049760492846870674595282120646737838910316317864266978912135824780712682380718454869424841926075761464209662317712482880472468882794748890392059308952492747701636023914414578587329783879122993918893688956328365535444214176986528129377489684010341925891903909748055684345251802528717309045414699381777289995237018357322875349311546790618419197180089815529560356890320124779678746615978254584863659203159754306412463219624612711905062257702721560668303957514057688947321429967509568058665710318572815953089065490405859744264830309057867817347023364037282054658526921292353309741152108124724645202636106126999849333278491065961922979438814183937984035209831455570040969674558240209477820282428900418081419734026597877103576286398862259752753615802694054605388117632200978096360938451418563589194164739343992118924780424835273641055718036837684967882020922499034566659234770606825585660435770733190091087518009643097532981501031306136507677529006282263095250996539075434372984675708360126969041541144070924617517165997544260073017597627328682345544046380929363902215443894022541226381771739986906454762184119235073261208425554847594575937599095269437246203790193721896576107387899739056553837126556100526548701743548836023678869941508852085219265522926631313912040233358850168180805474392612694917078001762641676402746088171976684717249888697641001604927654976447419108189278896592280232909466177813120706832644168476517320007391149783019130195792582985658902328416431704430594580047044834330296233078468380495413018464959640125350856872772503594215219920507746816818117591460799706293483280899019358857846418298244450096199119220429849629093885082286267899624514840296444746902915640446344554296385461666790221585070693972596204161460525950300406101086896975554810290685749308602132302382717222739798062126179912596766406993277632179671675320961062920099392387035042158292765082722307522166605133606377338689765319375242781160090884931302759465229558638021172140194181539122891619506563049559802499317280649556337433660044036613341558551040004569829819338599023222952691505916517168133520243011542030811416995146087499149029869547570425382481420140826326619222757845206572689027064036715217114166899504768022432225264724868084496218700201461475208348793132412298101351742956319235133521914881104857501014266958304851527495803893945470916482902120462162737741122880903754935314411833692493707251578002947030714565462856523455530545451457414313507751858027825035500574965072104623683279832297106527192123072209018062092554946840956972210612398589777074656774190475576958762406914693916845631737456059185550557104424780211691996577496455983281520417758711878568323671153102548019644717448520685186144643325667829087293471678649849865443681316545222963424606767391710455612733072228719740445783629230135168079544045441664464214472731725797208671721528681513457433359664210280026800022074855184177362199078858713542262678898913764696038162349923933007748977162436964052723280946830277831789095723233222255470564714531812966800429278128508299355914138872521271507820525300257930212425262912065678473262598371094458156166893811622107517452617279520191139678842179939941558070559859988623234964873113331144946532376318330855796877814846121625429381433623079338315738125025857534604254195696516362377867709353307365402461376170185738123417311766448022741461755977144667115613339401319728808644016346160102498424913900079463571938347047478155519487300814174434786431004186983252945402672122168631128682358009068055007107650930373299218444759727879603120381120834855550254339828377779516594512705695368199765247325028154829220824807977688660629485151494160607347064815287016068526295333365803686728587695232093555602984792019663975913687297834029576184179420558476243019509047246992860959732037694758465313609517341590416076677318218157949440257621050876098805330939196801621207369254013122934192734438742539138491014231447385452767545719870470410393257272475690448473326233166508741237142560050747779035447283473202294218104401653222109422268131214938426942458011061504883689888671273419805804109505759771649742931884316559748843935165820776912857906704654525498823303124390988611906646874811164142748562105589532684675676965086625600492629165741942406672645936539748851956038896024499826586548817419673495150197926101976546495068798913266829557324222862392738155993066401831286224628176054703933922031503066126469413925753595379519733121304789419839850401560767855617991059227207009989225323189578953170058057332832561779599178558183286131834229451577033002281689687127285343587339414357137826660426406617681313249405261761242403909345652580529794174483724857723324029400126073729929773547976663422386314966131821522539647547999816700970209126672332498524332278908214129156609230358131736968826291857350540812688556702307364300646094036362825311345047712313483531229337738582780216535660756388232985782906455192607657933056950213948296417400691723334221541602162418412641768330245836384974478668089433903720636310107988600857289873547352076806442394501511042164287617565054815922363374360223284051137254992718726447402182724220502082566758781783587484545151196359450193426414387014807490438292001447686199339612644777838957028097369188159016004549151528353164575250364408573553852119127850968527207155809869829219272512840476024346557999313986538310089452404063556402737518071401586580510802188810537147867103586539835511896939367591428022045720287252095710103893534836419675616405655859719315006689824981576367577264315008770856388937572628865988343411462888851348145536984948935813789798769398475471068713147226441645753926604600229891865569188844570035847234763369082435569863945772862297197712443864668704547784405211840269243743266779829315165388866363642096515369342144674374008232511056805155820834290518074941670011747934883260546619392920277868743778873918945925309753132801567005790793553845084060365223518785701320987176436579316212759620705140598625503943153142307453331830272875173425646636584212618690604821269555584699807852294783266105656477377164124863388233394722586356889055133512147823961681167998145869312890170809462099961615347303999471730079459276510914145017253575044201919683224711315900495593256362021261647103228460103341007886026808670945316195128008118673478322818918160498014592452062266831763824324109412208145410069264058536571698218210887218483036033298827490078216023317259627495219882718720049665694825675262651037686660827315032899784785029643134667599505474729322346256996126788442905164289542205367918861396009169892167521843882000251049426648527203055671457548103412733150931156454285887357003105876946115958341692627897603931267989752267373726163272052581331483381928590191248653886871565128614734219597334986755717745553133133489577067611207804800553867907186226772887798568307242932843182916724372805622445190132507663549762759857430033362333241246150433097838583956434126228191419964538116087997140029682725351378506262123772751873809521994612601317761134109662990871488236159080453936152816738831555103000251570671477838503272218269978098481050046526237786963313398387745632064132920826454139371458509684602095381725742287908027555981189445104043244105963841751155163502434660057935614789535457502493547155459454825258963080109727113528076553853909457944105410651796379827556005303019023515307452267858678055649044648670540457343935168147055882038450216731270254019298160893229581676761094308427546452930907904601005231666820639746785441608718862244134197567421880861320298994069458639532868247515705064111261285334540958526300362662379582674570102209368857834381221077767624068440617616936483048462244586231571096760673697167002079414348425962315167929610532604332654272245655771320785668229076589282587934206033988237503918907280121550075274349087377175206535618011706394131257396039981602326107456351844421013101134148480083889415609292443561898627862409893493414748021140737259060188642802737756483424738796432539717115815003842421749532355422786510310547276359750104554197214978768855348507539328215278372256772001812417819619280906616391380422008979845928782069538222549474889107830494307045749134380371918356691617507604623281275818187153261900776237362004153150348581969882399298058973767870772625018731511444330139570736719032104797215107814478973648038533110292905082499478992945016387136684253899124922234070498115945217556276629916591539179524555836153711927023899416806174978709845193015692854379362632259771986916113161421201111750929500849652356195576647243266525262337285487498035290435749679556540355608514996081352042605165083082071205483095612475942365044028296671639729375045086323336068548393327322273565804475465838044035219958863815832659797777653110274372916411765183011230513536448164882389418652171131977061482845750775925832588215562082569451397717356119276732562736152976245579028067321127196586670349769083402145823749166432486632160953542838613859141523102570481625081225899820695496132338427551029876912805068229558152322002127591568175537842198333004519900958725382250030073961406625849187142507520425859427982786024643538985620870225320501835063749355964181270827183711734063272018160173560871740155668832237830274644164262119820936455193677708600465674153857090195177851518409812849327225294129467287559536636459197120435371426823606189294942510383414336743394540680597511658484690649816587956199621827010269623669362844232458712893904163618792587735490053503743608428448764567091871142495166102267707609077173485977710544633614004934468127448614259211670846959682102745004802285533547088548929898918244960602155020104386523563760554301959317765628160173848883556501570889144037380278291490726956483683179445193292749821687381063215995827137154589350677867214925463152275916287441519641206338608939467752486198999992447849601655439810390984655913604318125546177348309887551288369581108293648408563959462589026235210781171674454639747907148057809222171488546327265700618520072123433151605454262095185597099537779337378378660651814012640636021433901215152336951243568415965542052321083185649595594604631821502089978652546771596242485672417926748100610404333402475698353655278592061284138137612634875284578498205922493384881336125638602447733768148589788474410614130931332280100379778444933579064741257193137445066361143216318106543602952729365217396425116357872093144922765996286680978078621932360376902290980991280370461198912775903627016715504909544779535896335538897163031522680603090978956528448150687056293353705763384003054673975613068421790151776027602021353219830023630631471865340441355869449679129821647633625459700965281680562344892666614782243739396642553581168052509819424561781164386311827661910773507563591069436199775832570872733909269937098679538403104530824176641656692660177867846174941307671288037446075775078368602683179545374474773755989073673278100755205176447764055578549893517308584311249829472286444317297529236486801944356471339622890622725000783389019140951640186823111824009232301701805155452610903412208447757472629457631847138800710303882498667954772812314948266328937920545954202045397840824418491817030406071480282291438497604041121477427408278499252548386215587727034526005130802329971619879332880143425794562019429890079027351275015540658961558242901739297549654717449812281142206421066874308685890976622823675497157549983948284202754222035086775340020899548095963346112212534146846612215454757594496477056024519000702441571254189589631872942325920966885794903663098370011719734637924393830599580272639030475053335076464059024592577947631643766978549331006619055934918242146945672850688679307264412673708896084167798310657833336331535032894299477255023996033183323824178773289575851252405793461988208882763607812772082371360278056309156987105293680424032745371537426173401354915684496025625638845675508429906763717257955376421434717612314608955757042754451002158492870046592444262009135157563175779024577150987720955572294254843547464294763252486453999261036489157788807488730199815540493519243470571102124758170219848505190882973021485392525689998715779340615054240817268184165335675364140338843283462623237637710451830397329789732823946760476598145185788203670840096815466933990105241036948078795599617729660320867595592729992790077534939645359919489161960653569300276888598418039377885866609637544914965287493358449668495630315148921677229963453398288225137747467514108527530820780848897024840785193843140010841528731237947736260505742738238472606956094889311894824133867923408765135669595058700470201461809279774294369811143461994721380098767526298943247528076184498630795539041446974577323243054826704725698032212786230243638615770781369592435483439073623845197487001404886463511242861232120742881147557634097044549009754813259818643061139797054482607897934979717589922641847726461650767500601211094919094303375792851168291632245813875623035568724428712764844041562379988004154933548047488094911723319207104473343140408532580889799618264306414848360471603687604705217735090478107130433131399322794756483361320170894098262787733652796162303655409519166441627951234883155907180298004857121489857587725026198287183845654660768009946109892979868670810648117592144294920231841880630750418041975819196196695888981516545203369494184910398810179431536011654566816053515333558249703789466637883002012998231710518274299678045632214416424335245151013360823412180260913979390067325501255414947553791938965755885882738447479154676850727553372478497251589870958707608027260551928049493645775783759958666788094796817475958500172731909491533556037230436077563139513350701590481598278081525491987365006933215508049723355511802766704955958147001460812194329520426333986772299551417141337535592436467394386478374019187130756697636127086137423713056756365115020619926052246496445916751463084019429678190517828423309121210231009654850105604974746256038990447088019954368888644856228984933774416887262490810921590000806358618707783915355764072628922375686577227123692591174367391872353020398411153418880922857530207578009281131640983090962579663069180169462776779547903902006608533161550313995941226981648016832628283805587611482838117645892242617692302551085369260693066810608022126676562327271335512300398817845084505711709890396982930759807670717442856866133233789444359579777020312534688857027220749639372570025386235004227935371965157979573107789878259512501706225081600247706593408492650542455287991895092300055002455723172756926695114462269673812810337917338943163970450374495102701431008416486503010730991074839307559560397574011757504954193955310039266448317001938943986630640594221905777514424898976913752134276872673307958887309044773552933461697370252142787039331987743605130498417314154926148438310983344806242303457146179574959480740815322062432909088051808942878025562908463572196400281877564399902889056176058342004224312702267930695406289583313381558851514444942202657761725245372381204568575756504608138847586060967166742036620152201577636446760081867734164428556045429618102123159390557653073602908147309252166555672277468144802609816453972224642664119542125371724901685521273841246351996633738255858553194034209747612418401709123336597590104004099680446626270927705833527781782853169621498345169539310028428084416887091444102731811612872419663778574305154715347199661930284510959755470296119659166787852484870075305204636555983279631090563963048257749380284409412870335626002278980166177942069992181042400918205798277419376965634157226281911176347079230057328696763817446909187367698135202083920389263053847320410827449131888345596588471476346121981227346240821587578541712418871580525203724383248483796228949083208104049675546383810762421002166352531749964437305418742034534656395894157497494452352777567021731687368277932948715385877971380913818750982099544255096037702376436089603902226020174538976809069123435759830232047888986440749473280926538161218491649263656004308257060875610772599351275088071604948790251849241612270736124771534597908574704237680217999214656398799579054475989334760018328301750992576203221921875204996420577296718241107073355395302186315447731579116590490716137472791660855877190647118131017688433570859159300606179108609716837038465596955252524566813948623558412623416476740572836753366038181037471190540713896441686261433674412842594589158011646966655491815979403434150227132978220641465092935139817640314066039542209155848298245176955681101463948363240313526507154379069108320093155027834398205542362264552698748256238474037911262080231377754797455523319147442078652999706051259254724203306802241456090484029674904478743801840087149711528294887500423070121148342983460711861556248862696407135916961294006126679106865531330820438908738700763299642364106469115214175088116875459447664959756686095006806550347397768755495879656148218623387213542600595772301915783439428239765309594751034738392305479898747170367626111987276081164413266205345270292332611484567252627661419940707997483782612035431067818414445360337490956626403133958943132350664284063936466026163496569981238958691374265976072403531022706962248264040956446685095343257128531545269477549436962564174460382129629323438029383977831894031984233565062074806761550160184745711722382488141525618956171887768239520006387711651618088967018163884722960306701743975358683467723857828404045672192342565267249938524420245608278791888634894413788252670530079321114049578924607273704475220794447658155484874008530530379132739574631605001378420435065402071990847651407399071355274931279362503178482516225357927940890149411637054587409931235356399797529391406941297035002287339580835224879578987308894811320180985915435166611346546129129628480732485435611154619852037182136581621816714642851693260580769637858770733796275123032719143765427150850297106373642048889561779616468463404983405998291408581284304234394098724243552670747851342026730174379806344338296932144050548387880788170806504109908275676311899978328845851346591409186485174630178584359741202232101900819743426129960406251937904942014955341963260000729775490887866938336984879728241151558426574057655826059413022051332375685080328145696666495638252053709101344555759922741128936140111529609595378332801034355567596965879016606615235548837238503944523865846148201806447687718266512325482238490598002743377318633204835439813929040449615758779013956695201329705129420682298335584930138171449285954222797995707759723615750856782288814164126308245068868794149253991394127397956111608672959319449493131697832262253778585196372161573434370034594563154912634096760980329355920524080438994590819192187054329409933751275325008331938986745198184522925366167950646648045075481908953496992019533466846547564082628073148664282504465377272358852706941503072732164737724215331648521850982337893620505971507138750194924514695422185049163461840451483988904180706500833344119518060579108817800819044114015886243541259417726812192225526281583952206841326624486143357180328166726219459934380297082475770974601244285983796863835117585076279729080710027314808577805973488140437034256884849563411738433245244184005433755640780112075263389446889680957710007404878047712713447092931831790534883223183564925128354938873254233561040287265851580168454447901365550550661695364568457835108346362134447523986579395220206885178767124174862873748581989588263160634376129410989557327517330547120301025161918879568948143614389129149686182512864872019781489358605885944207641895121588005079936143322097269240594715166941868008748413866681929045858590380446582929984887862348287311071390147997296880482435205219925119734639190092507449813290139113325483063344033477954156649577394759019620485939330738124266894722312447669666066780156110713263740593798868741961600401399364640572273505108127011003387356013086416861594355107937018098273431258846823836579954815301650041099468369053989809253431744890352750163717438449336255052191624416309886902040690760677588134064993759505344578804077808396584816545033222950680198870158662203247672970767736128153855804857666786127257672336131981718558889378802401891331778830594365983136336070322402418435454847602911833994006069549715149571740388011541206719608725250496559815315012894551793650797024289753416216182237640194026596391161376352343912211823625748048365317249691260394310194861797890297781510717885940203368958109948068971202393552274751572310099451155266488902688187975601228106628070161173429176196052940827458913615823571695019954664318679478816226599301178440812251708219953225059446494769115814824118641746958927816928597177271446159783657053885124214776729307527303161969339396658621370671417912592571806512988104284355962135896625361627190671182884971715032363631594194186735744520313654051008238156835564501062514648892357619795459755498233832766088268333293632715396981741026286194458533670817146589155489559505384891595002345588707463435152642727769847004100979758934879304910134714771917125120677297943773431748062492303502460371713728971313485918156337142272717266827912260061884767346605212220345138514176860274164866378637473407565731294739672818229557887720919431891441649568908861851085719406789452239856493628743248185708560348903800715605872601242752543210002172188782993111352646207710273570957641474019043941144790507858280397511990488422696393501655601783299089453442238870123343321020240114980368797510733768756968545979945657842881072551924306165400900529293568446405033754385310854997019969949272343883013442698815710437702561275215605108272108111934744435930972357662040143023171207175570641583165773789854346487072615322221593445172289250270466351729803447089817378823270128707224733719591569364243062257433754180392731338421985871680073576005537154654211263481675592188021169649001685891134428188961141038197305579605527215145667668038717310477040814773708117468704205144906938301157720224051814160417503789214726203642704515949403320980864011816698211088224661647929435319096131393547158967428959091298983332937167155456406893431789519651259425308063845238365737635823092495744047958053161938416320647722549962284222523877365607422742319875724466752005196959542757007518645621570384805039380277139566325615477842717074579189693860286634246475100041173249027522869154646224552711905577645475068627884654431351450209910243479325111977293509646686713701572923086184010887949874243884506918324670459095127693276811125227162394652347556383453192704733143094275086170700505169516819072597337042652864856022564880682169090234759114867895376712771868434581412758656996321117049012966851066458689345905812709325063062273520694339171849829349257977969763398174117137972009100023327717237881075316058116406438352386872805585220115687689206201442479879754390793383152375300151920254731170442680422881067718722829124494761086948212905361192199819855829601691613196735665142047906175507576448358609722222790119115811539930836787486496776577595162664837140276183661772926744970396274675963069542543499482745653810470710439823858829339022476447041341009145794329070725613011066419979138222370661099233159240685642279023386326429376511823019917012036456682101400137116741504885839779345870476997478767014441694705182171499157143461401202869232264170836273075944783327365540746718532217327000083370333486509976802930860585553132918042326653869428861699312009411898690237179714844716769618286199443766578838101463484581067386402635506467084703026270647047202174150527470251471307686283655736599227557141423554359985318081331100289273661436931962651724319041302856029047986032510745803695012377092612214938267279816948021556034009216223009887958409098033317134780954483048511471076595441044161525676072789886050058242487367193634401431665208841893424157289713931341573673568961887227148179422970342505284513810989367304871908899472974074943312111721686965221173280017568259439566176665901828215567816929620879452486809586326100292343284966977277088627987894507038564180866300623328533402437806196873207549707081184728790465708225492903709149554062166877516609435623044684551632866705517826445036997361483246476410460294180899170792851576942848840115882081182973770134960364270434196977210723531413917027430341681368431792627696325174455109489033668004442512267578985039986820672826825239252105029928942880182481924198366082946503098742702827188720889077904665611096781945962277306259422560678364111513693753703746869054648138460273579840800170607098147826592319929542315787193226487807625709057484015845638243131143206274019768337552450133661227396146678369964246032873794312350757391087428258862749333607257258378800654403446948725289693028046733923852706274101365910537601109998340561713609414308888938737747103775430394814885674910886301863537623685047839188692359890927004515972155877158126840131863247898959901125749218162155878429162197524494423742128567079615695600343290737417932585070175949079683554833390340553778478207856861652863687983835610979102616574229337495952484392230624979528850827083537355202122801523699961086518909395660381173838151694116397161854037387387385903988651500263277200349417103588817394942986748915242978841932907884701530424783722603394555150325872378350620621718604074648187204751501266630325464560948656892460720829096604789869053282383947763944491568626612255574111646750633072578374372990841527325318070364577198583240333543285222108821942247624805446255444504832185305311050789787447328429019774501730808959671624415755994689987786500288727821329459805990211332297917363091399244554100995935503458554244433953774680828913999379430742984613554935265153653501551662210873431272687259595739484789882985620572780161257730302932994836426198709172981737761622610739622133995885907361418327539291272064575784713172500630889971968575805134297883254881647344601363637259975689855193352286765201833810257286650228754961030922807702952859768311286695446837647755979424075190335687278457238590918423096415368463615017223689354724424926507611718210975839467205897725522765586169432908733189803772584956909011034041994387721731063331534337198113829031892904825901774882298647992508602620808936559507809902801783308528616846940419697454540872108279457072233453409896681583171789613484149711136859267848082556579603667318760292765129079498939179474764043773603055780147344669247378673948407294842758292366453408996923071093307590403275337485651003820472315102699779843414376089540405165564390825058459228160826595347572870713989620199979272445077544352039463151454414999423973811704304842846709908748204715919571718288582896846404946298056616832338372142369796311866111331869533383308327376685206134618384247523765430654612783150417208213279084644059921845686518984316037136059396302973464629463254403017385745872926760470613245324221045243101791863082254048896629077467964826857881566448360167715995132390703331178329977535193270141332705497001330701306525473524662700925864643218516994611526879062860722043652359096442438365545010466828610819857397978539527911368318245072656601662421120852477043308660501870433513938635192317726592853181092438862773271603323218475856455393158015811293116972287401459477586963189990446968333188226453727080464806307302250189946706241094187025569616988606970857871913014949757974847924666427665071937016524692245087375591158547673841686024600838067370596671568558575478399080207005688604844137350287338866645487649108242568312982209540534832604535454859446830211263297352517555818047072578417044357989611177538593616478763117636651900181939936483961100868366976452922614559208807529860678528996712933899814357804712442849228560145662393393625222863846304958235418024539096139127767572030138740052978711468313016047176159309658526916427608872245609781576064243164047094034395044405895553763825095326098732963505033036825348095225565924804115028192343712006996642962227543135539464868799969658757288368946286041883182869232063927323275819170518619406123519511273800102158418835978279277194154318255344636395589261896252140844132906333142088277273045895013720533203974988316968018738049445181041192445673573226835472246333857359726160016120702393565564852952382474400755583003999047164451227609269756548992338504655653147952724493017378733646488650216268904244301646872435836846801757523511326579097431880895456623784141859278957793136092751564695968025185616006259327080294284703872543996738674883630692470886364590522043577397581964347208761197453994414552258361487969637353398501777788934190722636011104749246638439109895470824403890209857802604358145616501366207097629249492022822729274787366978117926393023433657621976499415660622936374065576599677873668781132798129105832980028924065435325076124346464306088756283328445258807649549603862988004441171217140069121437340026158614176676275952511835383899742720318933322545492084680069894444240267800471591080455496658808800081080446278782830386721397862163987822271362753959690022114446426670971519781118044154526037451503089796794407714941056138660824586557719802375809909644592710872751772587969813766846858017750465154306923001447593882244838388276981734959043938202008693734274311097726097542631477289294863845566916087935091887711892761107692013314801115096758969013522920447533857497034907516968087630431905332282434754792427334716294753865384548121263882836371173096386927964075094980401183906851833719395787906724373187110321632971487428074518433696395865135252180297157961014564177056085855309044136085032516900604236413990624423202730397539751388110427193350875965648097446359045677242603841546618196213776263637657828155453923940046591885234210300624768756233438130088566718663553437050222704212944809163688226361095232445524474285149328109183753399346225211815436038317533565228905592602290621518876196638654857629186884110419984294988415305183325514503777229197837326679819458070313789523135336526489426655740126070851765537950042149419488334384198324973383671762652733760342407589123774383997230616964699566611535201492954302626963220370205187211454284678848553661760936008356503168802925455778416243160880759248770182551970635824586996432117033304031947734902528245200036089895803371934248517791643551465897657759843605144397355671083685815680831317345900883046923577087783758513701132271303430323273063318845038324997296075934842145388818876695732856850189661225931640621851642699921391575015343198099734923599307839251356224757775465525409666618258662536258652397336714688867960013966322860410369481497318562897122930744577074493912210709995174600218303618244925774792804349677971197989480032281291667882497319045580139399845781438210133315322211572146313166518744931603279218237509138289479971663702195760078740896834210637428032794518914120422974152320076538486376702267604887538875093083267487580700310908828538727995131325231150434693494885131599441039267440046952006833384710195531220517453593707675155023212037703097891956208849975878733995886902243013115030220882765273482860532474472492355051540086173437426150820129992311447541349527410600409681229693848805863428852276211686467725473922125664351294096852812626440181304213154508563401498820565398586378424056841959740458624491942782070757710894766742773397446769600414131852007326407289109811084696187274993742394124420019815341059570778112925835135111676378122875464661457435407814871209479416438132864645262752622909179369030605001752975096411776580812060021810968697609159713396975390533570787708060638893395731267742114975398814847755617991378900360539796047202166648996084969170656204537510762166576769112294590537613672998213838937400254330764970754388764512347521972079119235531197213509616549870832157912749032933729472944669261726140537568469834077891797839181648068939805960425592379873419180868223503138271031283369623758344302453488909214484509646321082854812599275303061239520808974256431569110825270451363528936411527109651641401047372257744102543198097745586318469502237111458412993775133449595609313337118528440254057817048861230206450188564101442449937560537395653577455391168860519377803105882892355933771716066914024685318376572700483408198932021524576302095847553740141971124963367621598706589601306622566564794122320464934801728514251169534823350913929493454807444007755416190421338025521303233596082284647806784095934989171832076134306171148546244710701783125020116418280531565808784518757196829524716585640922805474114892605092738509350374890085858562145534958839790387939724966065169564392339983985833444050790171683637085689376590586131510642476764091980286155816093249730255638749606000644535353115261674881530283197623638333204657551612551650772959042896779614045137507060027699035979653408621936693284429679600238011980438006220792598968452391974319522984525018577537629904300177292985925520998561034322213282023401391027038707712576397450400669716421802578263891132468520670060136611347183282413346461252250283437295492995226458033162854239539243734344269824231789882828386623374927987935723380585063552328391901474923070783963778335040551691796298794693007993138765546538760467434393304276110731800740540275786078599486144371939147860575210283281105867800808392794148909446794135987921326775039172751409022217137669424589612901339748336200016736546881519521912247859212466826707022005621678758521414960866987269146078486532952266424744202222589588454415713128596021219799520396325910438997159598973257028072917244564838378853919153913984020169930785332202370267396684391576402884687799388564238886593625797357121548033465491679674474753812500905215673102165918262365262069611435593680373659751859090243978509895322285917996686466499052509981798924054099904046483977794230217298282667695314660227252060763500755653399768023385983072031354136346119137154936612510510305346786870189112282418760379972039479974828368069747435710823741396587487772911145040570026365486274929210305330829813265443121467291350764219531111564033114576143040837726604593226830698624902758421916077887347781788898309931324724182321770110526718316312411008940692494185808347480687830775307996542404160469026226165186314001481126832051273848354742851543343865939600502301527266634962932409816587265232931802020073559725819734507838081035306223654344342210362772467144216457456923144311373340933867886151605326380426817947589759855335078921516795944375637480873507283418319910986748452531030263135061821393276740074859375572248908940996646104487618623066130025721084814116544948624551893222789667311171126008530000002148261340449603077260071770341746873174780748250262342505378560152502879280507303035736306384995425145713048773287759822088801907164778048084888605335769946674914056698642670809831447236530001705313860407572658873461438176167760420363407450850344158631483173161816203444721954943669817523479679489468398877533949343476483890364992844254565938261255130366985407900802467468281175332714694978402160928360834621869108711319173431611286385970090736181172502017744623297491586868187810433451193102874510067968448122075709003761149364331691658528799201467012902781705824834204115611101615104473663736162936802406706457615673258397820726846994966368246761001530154752360534803794088125555610614428704808512645940367208458299774000416946961758902756357712477645078722272124357396093917650443276118345606560737699730051399624423822774521340282927354014106787898455352324628854065592874385321645915058361109018490890170746849035327481243024493231549975105571968336405009919126173408276152380547184610678064938861322197857893587765333666540169897466573408526141316619499820694363957809167934742455641181735825794476364349119163403474458724410919217492244939061091033559938337174755890516612615537507387712242985629178398245909946403894167785005331654194341845205260505913343176256980019326595878523227748977005688969610951291216580510610726375926625418160930873284142806181557931874690808753034502395765704875240366707542963907953584398918525170023880876084348843526297793566717404469431871420576176872028409885198546165734900457864708605282353932911949975612618446123551950484394763861066752267862800675425943597474599112866802386804830544281235339871657893571915981837930709095221450167213581164157081067173512018861115279577352464834677112640194460731248559023909807893685930059168553018437918891513364862362215972659097912139262580714029983773856692577013979208497519982383678472469109023338432548695702860646289678337393240321775796147479597109406883254188009178192562496852430308831033271716025886088864031104449754312501857181099189498934470561651984669789952331910002149093063011665917473859893745864540283034608993407765231654240409281356778364356219310941777767159657521999952928779365442854933316578927776876671439049379755341323225759443562287483572407386692814309016841390524734524168852719583595382049901274921675994153115055009073591234176251504704223475567707018817127238128281226234642147364574164196265473423806176423802465820704977543122030101845557735106085558433559746155202844482339262861481686855944634264478489266140975927524090307820046970313789934423900150866270782435466488151682725359389452650983610024340807802958359201379626442651128395349409454054069924610911677677169258378296973290754821164520864398760388314030750709351775208146711981952954223104611336705192869587656517567747856416512896718963272316669593258398589470204659707363784048459451714810650907427245346151977556004408439995596913845001416842666761863716282514412049249761763721729695214694642270063917865843458619185256090561483568952573766876058697948037027780276461757597468795856290182020489491751842463043181645456294873858504278299057059565602246086125140994359003826086393458346508102750512401119659315831628991221122946837911186622691955937680085791097813574947909733855514212762540972812241576358431381458433021554468439469820114919892428090524029360056963183489316268622939317454089335422757217599579027477785978814035004750384942525279365525719553043588759281742375997926336387658887824809124088043084495193977841386019264052673052592950346585158640463609588717932984691021264126539027814009955732788782329055038210147647393065278874601225930892372062840388416748381070692640463362361333538493353830257034035840496824013134440951771657680025302566982453486769322183819730921799685029912090356731936803323835036787690180489005251315188886282945187520901689713305728782844613867200611017530315204650175514383431678508109166869073766608825205481697967671553558323803476191430183073636876910463022607185771582169708880074120360784335615450669929615029650898031124837293748323536490649578619674969720075035629629284604091331849292725293853927097210889459276442711339516299646991400861455142339315559062808199565312883829835865875478272068885399427767455333743129841251976414886682574424890150723304786971989849332586388124341970920596828584849703264220055803838179635422766641702677692760067374243552717984629862191367897097883714665262314882301781096584315553660553297077945750228183028532301534151941424860268569043226604855897646400597811243153827322524870371098027028389895480990255484983341601223662148228692059116764147167189984746853194367430080928517495911545933653583286501271047353465186780142168945161831582441515093794534173092475329510347503685053647976790386098405469260265067486919116756660749648061180205658809663758617695112788125839695429513836879367826845729920976366235338081885674161521437180162587527321302163632560871353491364591652467019766670536607340947455248336563263001935910511298742609971528132214738445485980922190411693837159912929451333322180957058008544156243592521683710800218933471734169432192768058357790347808859303388844010365762576285145172754451491945047615877475079739736866189357781302068591417600001872215969832119783772739741541163790088588512611904343945994435009026456926709103924919623276209577388866402757574671528997067028582866515764416556228136868329508383762784701891646820683644892293918400979613661192082721893924033614558742214385594941617438260839582187336358299692436661141022826477484126094658017252041658454403272067674330533380693034102433459161119491784225574375443277304696859747940578115530239639145361781114266044399804731315815669699372142124713554767038356617967676082296520308686797718794762959957569511622997911008079921921169390537457376292337867088794321676688566375036318699369478021407792115883871544929664397309004332054270854148917782960664286248667407918539991865820508091462420922721170021342580724923991215631325404543417564232604993901715118528992444542718451481436551731315650967475527020423738146302500122289631940342019207250183190127586554372738804361684171345185368989092196763276666227891420809222222886522197113364898723493115441606660664316393589081323341445827264328121827045699418610477642776617898730350759124172510622574026083045185957866990235926632666015711939587095989255725548593933824208273230832897112770717805929776091752182574897347873946286040241448187099281019127225627829277083576312019930439720928921061351862592984233196365985059576624243507060719287576128930965899977395191580627205303766463337959823745717297852862222746502395250236462947802426660669047888001132857462099125558437610492581995135330870286394822759734497521614809761424260241883055153521136257774675622449059625808520464380312610912919090046630717447457347216646071562668929491352073659322329171841562960006228476556773698045655126550720694128259220965439588356219752117917042163799216729735780391995650405847538106729326533820836927248400775225693007064586508678046332743180629636650227637489550613717912188667803844846441371606134452785481103780488208299608520197804762220869219284706689075851022101086968736154123741336435993724976899644777175118045082151149305461749283740485684488650548668780501492218620950720377802709557524685625961337416214908346035219731555032257786778574673030736634880179888144218466401707390206513555303206410068031929720211664280475989228726192212538250188894206617466318079013450830071704456991418347352108254470028079283519242462511789055434958259728271429426525110241022891743477047710475196004069821246663612091186744059514736034407106490929122405574207282375014086566771014293400580185397752190859541383817493516134902630454044099087031864321104161266033568120008866404691034285973649982543249842489770793273881358653554053087202305191670894591608114642058176326585838453102165159703352023651785378485294183376305680029096344330855253096063227445606016509324474123658680901644902008515348023210292243287802293445453109139567598211330319641450871094830399911783314859000154061375602877067877023060236060476574159605590753342137461975328044837214614511950967884197998439678528354732607981309571505822522595716199840713893555659576690579500810771510641336551762503450445107361518837789687798868999514653878278905475246129757012996587998309544004626637769607300353096468483267588631841269828544026191124927239652841534428238256521789318036012155897704655386310239447225668997905414169432132994941392727247730077512737255698726733422369086811324291672018166182098005576890926960283436637554292655654283097690879705520491931109503469691767768423660739000142486508852176859105512934443302049373452836167375896995739259455583946118004425646968585539413368186336469452134888159528424672548734729271468198022336855211137979546949216962071230164978889703658312697127560794902060937356818649880443402786088574150834779119463072680879809986753523899851694886299454502491217705856590949585318578111148492845952748701875637948842257841465390599196652104014285269895087115518109907025485926416063016618120175317613712336557594598144873906360056465918853873200477237615624106242220896640362308035268907840695317125887387882691201130539722281783654134013423809792360584496958945410301719035720225020529841018667952903070919430599984360882383397580958725538672464048705917195196310289243385929085261611272813848735627688580222050289228908089985130237178719214864612727847085974732281610552012016685002372696227193616012194751401237437825087163150870745680740323256053237809438222358833775504732579183796673213521832087712050774098354640753560511116427612545734556386392805931819492125135629618630787398413955059596375230818709067088731538892988887605360461795669304045159987697692501804153214758361661781340076828354830099182515267847909225451155842621603813922448667869640529462096102355469924577464950478936895294642586303159480652986702007601243952363195174237078380146737656422281946732117944895263771582780513053405516465811872412933072278320662292371624292838626399080890163272837010310598889011972142722596931896437070224805950348955448768355902588676814431362466456395272111556210921111396847414483743522315684177010111227528286397406028666099748363849668269090363041098081819317564267284108870138221497610930405925070791656467217100877586238739912983320841148109662544045942998872955289767980752432113776715302927718492296535869272325989888711148343943318918097623714603669533282298148433198581994071461705246548796970765405065577377188495661789069499862019887613808052214536232346250757184152895230378314254465379375014262243550762341079877776131761150567546613238976389472784819191287792535708999294520872660241238949089968885253883598991819080151317240504458104878876991699989879407171594401177575497807576958868633146250704556173585660976747062629239267256480961267050628888467323824851959738339067904269107319692205861701126098532162908663353205605775937301204485120798526325142308328077632305063478608004948829939402332306370265988705855953410584288459602754538230230220469389637629118193675772758442214960920949408896881463121105542685469995098317675837848990334549649243694631681368266992238077416091036969359353469258301190244413441472889554325338962104202670776294705538723688043919236986441382554226143182653561450863481867722078728925754554300669444843663711734118519930036949063062439212590627920467704643077120171076219912552375518784276332282214839253448356857059685629335108788385578806962478179657564722816217430056646554957946966238987616905484038713118454714137229232160156076346863509242502312614316655523154101261264012014781879124776307424337839651773859602971502064820877063812837497397916984759672963510772080279103043416277044764182471188717967583244215320887423649840617426997818436303818136228776596861762268268466499155320673246393330010294817572359377273106982542612540338076366814135805273173108681934143119795478196241030192192849618209159033952513557508811391314660886607610088287066678205573765637082121651831471254856623080769369460981883252161240024417020884955202441688277948555407349122818316555804124341698570466126584101719506793715797044337063864319181123347454787710401929678497849086634667372401370333507889985302242370542830828360697363235272726337716388733174230647475730658298460172276776145892087390430262362123191695663227194806773076074550003949776040090048932295210433738134282824157746618523194004037457751229630426495579648068218522992538892990350603728143475698399975403129264975167760759750171299902944519778096465456088634889136753450847152476685689643833804227116967598321041687367780140434194877334126017613360251428235819164487321902574747941561124898775253651801451770468796863469140792674112024513399877144623853677411528658044818417250454157063254553815975015746970697184215646531729548701478735809964696000810909916750444036487006547088551678192971166123368461702544222441469325897391720732824202120195482980078833836592788793212484319823307447987214054967181866696519039299735913461816434185552784728404983170725677424429249328728679605263740625276739315666657707048726439612502178837839760148412143984520024817336876297619539878891366333971241229171003606613084787933101992513394592409989301823822152877383625728972047655708851665507780869414486166214616531805908005170719140287252923938835222244276797044823607242582566900720787440654531748852073286969382606583315229243492954184143597871979420175619381625108621545063895522844353096279344499356181889913991027950693092775929882103154189803483215664781019698850850852640083650634455604807828397938922734464487438913937674164485228462101110924889742304542533637818296129997455776683193586938368094613187744912980078024965637901125373893898240126456112359026650705752653853951630950957980193263449245472830925447946118367035116000101692299603076461437769604876221112890464754648971637717152428464256515859129341697799964973763416046881915294263565561102710295643353131179238338157132541490706334485690750238991925689510210508532700620108013166804184921499977061131832020973131211020404832673986348847850631373557909426564958962752544546940957929915971118823110956088856386886509363789282379682893827616112937175091174468975475141748099763526380798550414846146024249958305008112798129791841283736219249664860423203567284156007624719115519185006738948711627343221886087009089645208879003202833743951108024805472296116347430369939631163795772936982484620445723596297739287298393925085629022574849020065388918733286083586081661953089199075842010102850247752092106473616501911723055686479274629086359177544200526294192263435008823488930330406522634905206881207836723618600162179187008203953224449921862099771217045693391849290052782703128835594945763328839916174943420398414760170946793504586871606479430236827889093534090308034490387719105728110031177802426017369808273188542119210776948596280291567438244788929080755375327439841954568965397121271688402154131084527621114586224983905408145374549030355735454541679722619257656521569799627172893714875069624618661798194494894509549864808728523390200166685331319863647755816589294519944835980439006235219998496102231844838984002047998839268221223108545250007876203941163194588394054809698325299171927625293074998904938027385583080719301735065938601970947116152019207637220314994460804543473298314352458369559551818434751104654144044381666163521554505498339645882370124834442990167643256216134727739602980358680466753104775446215231783945317193070437500993777178153378178544309272629744633782257611512531872798995931573133771412683758023993294482851868037856577519348280137730043364296346189009207750148060588628075637115284886859466466135788615600904677041693272456120764780136274749543216622066815082208801314297712242696883130664870220260799999110589535791975559994363783752573691955321035948009189046489475182469703288577994266101794925536254405770212352359060741236878204402442615118816165076590796434374536192812200601410409281809934513878059442973373709174243922254465961740018293781847933671596581112549662299663423531999295288324424082657134572251230303384217777986057072271553477863068501225702165088056349374478409826209668774811268230400561809994916533577629427052552342564549618016498225514106303706399777398673663394363685168250578830106816445440922395792414655240809463475090226720191811902417724726331252765870137713555789997816015628738918707635222249151493675786476387109953935082005406341969392432068553511555632155865318994611433188643419168982546359534702430969069962764547669126848525207742265417844928909871203331831893294968454865542617140635113240140237720898313560755275091261021757208039596411034322223548120298797230398249827832024863279831966932573175054890192174239007936456017103612547431096897527440996751537478793513148588118010479610169266905755443731950005014403203773162525492871716062869412809457137484434155882225609511856473215134218444260122504646385063637845785341437990096514021625774626885774278278414365791488730359171198899873972030439485989037620233109065041761283453792888672523347885122702420576147721058238320885745552633471379584926638169797211940505316946226308737457226722152858353885110439697121210617346043892117354161296151122401630004322194497895766047730970704099420915476415228117599039914547050693584842061093954613423272241348827065638349768542290636536151489209160780324845762574193687314302541141922947639045983522932236472818437591103321527434312553881409678409837963511444310035398995743796424070506187755895095593119498293884509650814613189009112719615396547211954758051206636779624204355355708375410650815253709586437580054053534864849405062279697413294732376100960975710701198867138484745452449442761066031542158061337979288987921720970374436277597800517052190480609480690987020537209862122559504406876979646725306645520490522980126482854427870549856161354708267521023832251402634876391113323923943611342230542577728674149133851061836466910511056866268950372053347808859626637724547455113690138581774207126076900854860298136809072182210785517531525390505286990828489844501508262801630734624058617787573999605562507362342428274792155972473299571578917318158166060296540584297514112727874033119245386981069881237125522445765778465817455597534927976795037896820792450934254957198931181430277094144392113120381180321133141141036335674814748239357547132076883604509204882766425789109892698825208389687156382601142482398788275768528949954585036138081963263286766340136319948009222213451003726548260637902275365999867177642670929399180334056585062980585537939920983854257095431260854520730070651820999856364822023435818750036089712846450977916696807464999524384399491334787278517811267865263292806126932324922936007549351869099208471757411123889880788783473009009781081260395712085011996932907929147623259675004253067430407603803969428049237066085110790501051167125609797824316028574591106178999633695543526966174183399651372330682810998803031689301654358034336031712349163914311280690768171266294986205172071335190158790771417750855912227588009895451387408264730232144051240706528824567881057213243428774101547659399421580296993264705454297679359389183866482193340861799355898112506879156981220837320764746665209652500277989069527674123236281377558723225622506025849478170615054774437376357427251713150552400093427030295554260505574719101242079850212574875053787122620122859490818626027516573700014999171313811130109877975559662666910488551823036175589577493558619887195959306506989560473209242512465432196707717943141300402638414368659713236984288926334921984016916726208060748176034103689647200448933206186477768321958201695542724767461275224743883416741036726703300275861941019025402538697617233035613498131486116620952137452701258602425667732414830040791733455530353954789323021417342209018033433485298720815943684067977446265051764042466382890363825671914078538260516570509297710420855433354533391896035083487204559407978642088487989872250059879305352452381529256595603531674638443228741351616547373213274476154180578891563746252587322416499560324402449039215984302633082887390372041224977572561823059395841864384020787437449011915535712091821851224126000456928567831131558218595519353924951318995581728650187749042008939851772355370109197720772626450843332254962545824730778161553852547821284318047823626242438161899519664861010253382648930384501547351107157873082345844097824728345438140722744892705203952199949373499675231722439688195331250661838874511894145783362000399573278911590082481099736859301431285236348813045410583137021235098715280936658298781087706590846054061626490838971990116782457743234516854772568127386706372478722043727824815738407245360933341858869715400862240632556095402004661986520482663670455046710772061753760585588822471421596467376799036080903713422189931775478997095706727581928181998865321676157722469833116138024510968107933460471570264360758609712706591612877670761341185645585488352525050699846791108039667499942943422233366806863233653669366372765038291692466662495989157730051608392951255252669855666541056747051559676214223341193718593485657599106643903226568683535003582375920232999796854572164211756495269534933457128842878219066426809990166454859482945936135346230386054580564958341251460746439991301859174638468349889303855113615012347283708195891869649187339008183998035538367848864399139206805271713490366951555940230204914813836085820851552853483300514873172379360573024854301050963340351996078335331173868702110995750353328429246046990893568209585320040433159517910295008041984828926514482054314555114132366531960367297773871649337750996674653882546108665944870433359684657523280864686506339254856796283941910394013527132434600603185315256950465185138279197064108687685118810122970640542334045139270080697072081826551124672476033457914392415882314784401585797531333950948543978315580564755928281143979254277762270292589378040418716407052768797238014616078050298345471252225763450692481477627781284378147338186381196118207236378433268327986539707268533921832942261062572788326976881079933349700301471764503826869657663262280565198080260110363586090574544057707484127760745916504306235955198407063183624036941591310248508383450245346913208424816817057387517676850507444206792001481516419640480691880607763821698833132467729539766470758653589452755469210520044162134213847498400999448426136435420826884634533758863810205535775431674656321677461840042822783617061519712636468753511322837524600038257752085026145810773248861765912687525829768727321946706524897988092415653755766807421285173698224427370704629434298935152403821691099675741316110754830336974799225041710076513796095430498792524170583563934790279154418057379181533448043264735306493487527604509819616553945497745212866996937116337179614696584921454149247330272501943868439869849629724818879298367454827300532314692109036391313094603298380538937942127454541137165984559970382503243089851636899032119081609619756604933526913157528024086962478768689866453241624903391664249146179405151843066339944504772291357095522288864515828421118950740746690635755281179629367551318395352379476993741008582915278060626442586605495388700595332997126533088732379776367290518982411662236128429499872594464942953507081377872889997466541280635894263200056051501860962984699725332678466329584971051530238245257265971350261557397916930560951643854642757702054163051706951350784078396216888619172928533209423538601670442815751996553790023306987852904287310546691995213039402634978212239569632619415709300977051453213342526512952663832657246669576281283994753545291004429736599888467285089688261148282132569509937985274160575126986162934225618046183266327771615960202405389196489390413609667858881443439633750133667526058860642919650772893632573766653760938579763053002443554786810883584368369084553233365552858828327920566594403944000572582079899041441936111918358945488761482748341042068992197232307575155221911234371646591132730081958616917680389383087953851934462343960014582875193590533527903587959078140607907309630662434883341340448107005865189803089779600476443218423592994259090247082223899869028755175927411628737819233323106950557831644294595301999762007217179409628773511576340914708820914268967106322650221507875505191652896660042496715900268222394777512390084445019090927682904762147847750354833243525531823719309493515575169450062669004694731470805074892469430326051728363198015300671729049022026413617771952277655479571289734087493997621962099340413241851354471262178741146634708793729522273891438360365763418439666889402577806351942200842730381485149997926406748340443596098157059974723683748262871992216254742448431936479300393095835920081911988449144293323123778973412415431098089919927505205248231587142321245016201060675803296230759316157687674702260533656064301051192159643728207477284040326898704987600901438709694494863977862376648781832723110736496190330436047596941702786162566168504533039645181102640147334042285772393708996031187234381197553010975476311687083466268908808335073621306293948343485927382181696092230362463496345716324541488389486428870591273928557583352072497990471250993051071596386320846083870126009792038445672243391405630042479270042435581009841122227738546521329448015794779889393416743196301013295054433586233559733790967262838439228413781140859913820194149575729517522818557129420668653091342437903125613171583312862190571947138662644458315011914020210597140703694866424003099104192791603565284780948723039907041605157528213311464158379319594532499042724454179386156993614908838096693414408871932537437964480392376123511108025622689127828726352302318418565722603494601565842431062181455733106775289875125494029109344090581435585536057816131214513536956137181668245896501789399917001700014420043023353488891315965780156742275376725539721015736789996847198543160391979931392806539502720947308206723747326920689272979355351317426832502840471691397034346419055631863767676923521734088039770347956700954818593434505937302896847663875783515512098353440344694979530416348108384320324475354486430902423553208117256071516729283227271369494028772244893170099990329190177150322257256114981853345146399259498883816186694102810793946327764792463449404858417674701095084244780938766332720129133868943965011422414378466332550569019220646586626482963568716867108552308199823474637576879677381312662087737079383997501188696880640089790807742247622679284855104368365606770832182852191886428873756278195567274546571917906732711999874526310110843435509256637325363653861239354651129660901856269411412410974148030355991596954022002077378724869946551384944011873661552819371377749590503000079523282082979346710258123922922863862231515873265155305510259566501493736134211225930971711971584872843554334496244839503280168245739338640383362344229600559679933511007621514332325427079033633211179462234224798945042460370256515836653709983899613955062267525266763302307301648055801467256749487086240499441214175192676471433119600724865274623381498977328396305613702114453167240664126215740985654081263250406841046975887253719314441461456846120182632788286674951523657153813530581633057756749394028311165829858830302935233919559208786101975757471206431703105743481759564971632253498897560045040374933039534331111417154710201295517562635889696875188784040997349731024135759425250072213498890069285607561941183450991828015287341324736396676288231663687747416844751866370911773278043334696272901964788132670892269868030596138461544229270133122567045873255358788864066190504895230309572961963473902685785363636783697531211602915459402417381108795686763486463292746475729039497993741792702393243385638792345659581241718222243809417505390868127780954231552916342256608065961033973409406545441554927375423196165993555626058667457352458243700144478580590242649127975483949253381154062065314061840982451499590239575214024598962068250986333472745168831571416447572282790766797085957876407277138236905345171418199961428659050309156475222459526116242319452992591051954567084855601786540021613183976104991918359019331062112283633741782821786650003063016685496803490786764758138529007012764721358881861653423684041357419008965283802430895657014723976898350899480403103486214317423836031079105294243329881204155650207091274801053850931898775008025624737996662794627436577731859202690419753486814648190695109722892785844821899369442071750176133143112382283035012778403534348068256570601469474419359740008833297358343743800895092618439850455472339927451253868468406103317385177934658307486487460477913307776276360408784068004780383474248697916337710254382174968442377760412211210490866725228405646119615549685588016109960391563450289837891436126378798808446991025902769099575285234193468185140258661614711253418436343751581391106657732323944737844167189501768263758245624103043410858296210163921452417608891552385348723128123543814494351659169447508071337781634515322434348121543895965977822421800331731196871900069170352601098920039151488420700439815929478774325230442458324500743218425639481994773273318321394497636707156343370624039317727543454602611176582368670937364000781338483353292642545425904916826102643130244943332829816168896283364430648316301265279441111826996321946398845380169293514926275325071684371282991386326240700010815007450365503013383810066111498973059531658642832509010704514467819826803544735627999658341800928541920332358489351030974994277778160122192166956932828753804776355580475083328483187846381225166856254860632151518415626339483261671487089618129543841040011738469093102329513295879803055080405798391914328082217551533511631089636530134609393463355781587472672557511605055462921788209438283391699317380544077940176560161224824957266651923717342236051812043312001525799431129466516940556117562394619066425900187425661957625646847755838049990243198023759843384374541802426857492159665525594322265557099005888922242941094936480881625596825080030083506085840022256795884779312058550044285461358731352306482517000084884198126514021854235599044506037648277823399798785773615665157563798330237105837431875938017313428480899554657455661681685844376198213222630169195477380142329694806599991383378707715829047173285791705954864567604690212932116862886861986722255845146220813506652120953786784747337758988370589740374093751250417412677197007619838981248339422793022263134843568986217739525644746421426417429125474167646070913020100810113679521847147068702983271749642465117217118495516631117235437474546023327577249870582303111694271457736023292667323725781923490597867389835652354703232148937607235457227076706105200595822667364296300727046773205966019308515848657995215451008202728979793617888993920950402665219702980781635984361678467773379151690409353740515386870368620541745952614177732449239842431024303762725111482029735959989653501298057243528162095690993321011924631373717429333714961018625809671315013694267741597541248318434602616167903236569440359755376926226672975970143862889631325184268366407615641018333652845109737638184741661135918624605355684190380653634771132899683311912107438842457729592069122549011914021308160026928160297435271528089467399294009936459435711016713452035247063530948839933044464887410627586541003806436818517211600309632371641980934601733158092767194408506883370197102663662586235078346835477685333493011280189438496855251518838067663235666212325700961716825183330196430102841058930147656848844865813703176112580126327502473913286188142350661814266369986040718122361674049819188444726114186420162169389383591261358226449344145796034088346674204379176303250002064120743630776117557858320942453221825486004700144566550933477696768934042264634513711655121934197068816298315777603375750451584194206622948810334455238001522988284316152466744653538418580491912211619776873987455163949498411512665864999921780146644719882239151334599982294487072097207319719357172618550047704152735874168651963706506693197588793652671090579477525366627903679180584876695024855317186613114839588717025499399245609277839765957433739353630685492319658935911855148212203727703215840224273070519733221091080363543180212920854767577147384637602108879368444938121955392990423673771853692173853294671608250036327274971904174304992528041895703889894558976713530441486120515787509393823916871610282641472560815085130666497038547730329568359494739075923033130529485925723250352565121694069217955403515288099419897899240254504390512453955476635979855894773432392327711018009980359962433497977878404292078430799816910829011844671061154781527703404838301913110463645006342992072335253173014474049146121000694066735582993755465551171537285800262648314381678291368925598156240812379579857861582314213035542579444492998272582825835728858661171333661169774757211543675511492915348477135780257814304086076005096980997600093994783311825874075850098869363351094200359968702099768211331738385017164133920129262826102553747085053413099832648900389876206737743622689298294245539330147658471402519587998469872190352140933821502199933701037197839100548325998042835565696623382986954512585844168416008324652887890315116773443410368625103962519240060982646068012012155249616932746992733305077470951570451125449534986907579805199864853163146900656982998258745359414966936359618285365680544543267398382090907324884116712655862739641825996371308395519496311549210037610017082358567438871905733100328747066747142104953542926127263637330510932069843343718443827126894421885024370488903248569327088034430525169521988877099730414633215916278222327604125163957497749333839537100164636964815408989029695538370288209608902549948887937508079401607267641029712644589861131892027225605758385069284798183883540976877399581931902572202753071113929559982749115287016230340932719086051184013649260719537999381575155080531047580408806881479622231052032331734853467393576790131916871729336572485367308707479253860463171718189546666120717055675298582132446545973338112607249510073189569069165135045106928592191410384821526248739740626147348372179146029749639252697186461483477835305670215409157798853108387155671232064995116609420207139686034148405855951678813134669270589591751887274848981662876849186798157370150599678939737207853662715583405290175776474737744855103623016705920077476071645734730368405354457129906957885341677168528821515954279863924707481856364572756182579174174787948533674395616655989128336896205476790489284929368386694785671621794016641241745106141496456406288735670878224625690943559422380815342947634825750707477326240062524362015633058935331055456831471132815635737142936797430695628591798055532767743810279626749263218893330906576824143675563461366322202200848072505503160107789722936343589985001348014040246500826004631874954084999937973848657137922774026841746607972169291107113182086777879160008894391727937533866234041792166204554204548937163696358669044772728044545638382432799025821597755631205493528108908238199785915133697188277635437676998725526946661538422418954284590746564274806634577098558706549026291600379096449360252576134364654737575418608484613651371559217060763367206224483893910891927853115154615428441955138494792104234000947447693099579997306110324286782560291714198844455872317690837238620030454337753419227063655546603236750561825843132747768708273989189733918875300178572026044172889731169054028400478287324643653851544462455717943126554832054223085731112442587409987916311575261903901878740994392082986059728420986907277205060430252582424554746184363421177045047250314198684496805091673412549691728016007313455717527128325077469681137960687329702187937051574613471312047840622966628102242816961531276967599661442078836688204103874606463264251858240007899698280900780285687480908108558241705124002746381541804321443741245594406719562127520875816798831191294136420115494166690465809364495564791297214961170592214035129543211654695176867172630248600829242340189274918707007880875864441503835594326691728000411691916429045468200008731593759689541644699922086490894629599267542817696949102119133668639845560972528298542991918923044579454388181322154577585188777631123319613139967690848310516238871539783156799192969672623271231538991210495585566059321176738020161832126764296499017120316305517435447472862674327764610738799171077492897749288878894802522889629395937567899021359473810783905025424925837849926912120630686296140313095017637601713026009576981800364199205671728968518936842838031546631761422410594450730567958328210616403963964078670540931257018610760669139389123472168293367445098579419367770419322203597106539698209700518951316506982501245124138809034940318710191895002517326912268997838426487300843467779368533603033571990101681866278681335722424060459377595600356286552076718008031958400277016296373868179129210296291482079510302539482814438356077887087571629192074100411053705284270274693225086807221074184835058120491015559476469379270658054250593134515905922323306212384275250407672380251050392118976833702973706097912634952633642829219930942345544254739965820286485027121779284330284110144152314344484818839436143850310204345953905451000355099144756047254650623422766922549264954847676051694373432284505369536767543139837326141358025410964208003809592844456026285039452233857394811929058715747197047390105420762724706709223801698615964513156118801059918267964730595881639002859065043955263099150328640804131108823217045418356902102223726489829029252364827029534174187875647009222184993293230370005956744486560337669302611306659038001006256891478783254745987178363334417384714298506376342643697660723107525674947329483343148825091951808106930049329190964302606527214096374942071286583789129505645711964518388115409069565525261545392955105594172396543437224655802686338230771382584564883063955065840754951486448434466381831579758857895223543809789628917103967518550314342105572288501722960445281444115708321290104016167429608113313321520385117386849728097061693238253224916706259738559602229563118346311616158689499617943116626077272722772444456729219320517892864275293857562978445174663947700972054969624907222025779658032389703390514330236966568174470851420704168274387101531622269591251065391956648812469951217909362949255907793145106642947019803118960266613981609741080947318694204772326435978149601158778428092319294123830867853866408311711103005203699364609712093689521724334392040998787268582569936184637309640624070349962727749685028464470536992822199658183471218056374120323384519852973476468888767894584472546707926396155715417498323738014563903647241468197410774805329867803783430838010112518345193436715415086278979593431894754469805459284437334820194358610043994492305461396808537699515678613650831490070087987263540578863354177441750070671288940947153084515280542155852922804491626698847987036267590518297410779470369096095748957460361380405111324582604613530087519828020938513146721319360948185909641414261296434908514517820315732648785004632542886797120289709250777345965096095481137136248940392297562306998606551312316646955024032662980226559786682510046264933599627949967761688215402465701865565440268544532006836376518853104989902128289040999461186751853128587104698949308480785340332042726643774153838982153131106888948942455867173057740027962221650695437008747944893352405286637663391518414659032201345390346219604960292456394549306310635391469029165224793401890602473959863779607447225173282893361242900496828344878032525386215728933114963129428998717297999220600354879658971764301089399410888265550871549639872564128872889175790995152259963321357943175762728529852163988924864393492204566920610352312435207255885376403947114085721460359853405869394552280460967232732615584707809489641025539608908509030100673813436246962506158814442614176202384182163540410727280086548932683244725022553977497747944587149426718335962745963454530210810530218405463624913638805498658693509634260163365336691443533997787939603611137718569316766637949965561214692130568922629815997127431831647980688804512176463410763964533366877410562700458313986633095024426418074092598099690991960706635459507420215582667744769953826316317097419340010454706662210943400259830595207072049281836832720598146187857074514179144466342435898369912993307530976704556789084078721845539531904219420365757487288476702572478212485933533110861846667384967900996594465771348968874693891716636447450004553558323512207228007615384811835471965147165558332593322044209897729174040577668654088912809704135279200984867100804050747945297353162737398113591301406514505710577159893106676844918540991967256329578839983275160300844478308644269567524367935712520311917556497326302464622429119470119295275008361848243730123834338841295634472986387572470072670250957234750606842305435641758571149101743002733449598332997223412753491233796148218000692860707892268759541621004791620629434394171219471013716482069146144152397447325329710603713551432100878149426990836209034124563255235354897111979192668186808889423015887595764072458633428122230391156768209938760010252578204539038489995833986914917000978016695143776155885071667262859375433083355891246087870399505725000835470305276681183016387016297940543595167788079591439745988384876257187495333430657858563212545730812271986978141504931290236609267132143934511031560869273333028507429491270854453552303506979022173608697491370737903961802182252167149391455118954132140362145113740035224883430938507438687116142797216104440940543259429199345046186748678325864500204305630560324906919383110407558001439867059175850284462422508734753159359240595584228655156756048154265597440196256232215175927813003533143883886845934612033701496694398013992000610166963047923224278973954619496898608692870589594849321182724245051086220756805642723626348229770165036177889400763274102669626691064197809146187220290012640538496880533732628630672592099482875474937845297612483951017883998001918559265462447381449540442638166042534499812396957423426574792145091494074034152061896239564259991063984892697602946245175284041962961679408883557440683947244964766694638995562251285415859030252074960501332094523775817941980726582579316360371646014687399269750699958531448212609612541264792195019116736752809363250535519559915887645706673388148822615411573895698779041171786255798017856406285512297418979302681878780384791958437419593242227061115686304569867849918934085401157663576323522689356725575802178387389741400208814213912693412988655011222805325169603636777484395470979494761831047257288420725514678282154955430347851812356844169336625969457496417700709026930286702581957849611962104329298685486135331638007451086156289141320908959029476908981844675375040660489940352013813074640141288304652454176534644061416327259416620347958753982650109669395763545879934849727807119810783262562096965979415830047055903914048610977079020782705149814545965921948946076542327548619199960438926829814534276808481844574316935836317947453174860597431575883974417051259226385998480922713942725068328102341975678309825123361052995387146731886571685933245660004184417031208620301383973013872663127939600520829894349926696567864082932076869798210995391440928673433725856398254764195829870417343848677536112733492477780691889358894948815085996391004586563658618645427873965148482176110893218759129104429646709982841635707121522294135210538580724675560356783001341138780766791493000573697556174814606734778585134040246697575822796078770093768535229286813887847759059612757499265063084130029925102925960685227388208756533486109086165919866138970757948910782886773916034723094892318299386944899418712137066574527719533242810035762500013580006378395115939879484191271550705843471972670825088841952711657924684808453552406354318158331342847980626139395091721311810694950859196464208929581660123959635352958069752139961308026404479255624494642374038908284373888251264214499540014285555009687447730564307225010612447889357176294366140905851656829048205974201014049340505431924647273896068688743764938643614098787042572419023783286653007628973907275626342493657564228979254348577497477378087635243606805084074023033283534774362545591823186994370405604922438466460172319771952491103422921682232331892960527452874928336267302048795079553486922435458205941864468918652336054708148353968335937036321065910640424621821678974368229052934042867538252822346095372326025192666791748609830355139585529205122922049978349345692623333945817611771875829483840091745392464763229458355643486721512334850559003906510603673182896372013853105855056850248406169576079500908676254980031122695369049156843487361828417691125305724369329953044642398328179256953719016586300574635899828728710156238932848157403945705665107042750724686400398586836606596447244015177546294284553712314067229458709584872214886906930302506599068499602429390699952370779214427578076362241012990815598772059014361467508021961546704871999298197647755898208042049748677049018123749719212978833526860669154330511116732900390947400125022774320042584061175468071055306893846228674458644740029910102108007597953335443380323317898627458562954691889797134492550057736457389223989082039826761365007801741230090502909606101892980398158002281536148310785334850685507040186277577846837097027884337394090809846879818396356014590020167127516625735578454494340939879335755655285061295205745576729220921766573598532167957421188934111661765290552865023151691122887098637929304507286184159209527887821517562076155525358821658430530069344004905078769984248018422976354017191583609223749646156709401583560611913939511684213007628002569637686576564044434008790223422887251648653283347959226622056346850955386730054945022844831284861041380465746756032098243387283637616409840500568190030754420679538053870588494759603423517426822947885783539290727105721826467476078218125564471136340851568671152689801125337170907898231790472826000528508185444971959536442823272674440755052410405451304837438786977212539341365641579953975661677195408799303296572234110049558615770643545068482194393750145681090120297903368086916711378018256903337260606058751512403732700919928676967903066173146131606685571609294168094007194933520492525328159935043668744464706669933586187166184022913916390032962309556380514351901158028224267958597431126035516847084541864254309999719551398737882313675142372463818654295857447950393326484727800240554255247662459581605770237597611697726205463418978455314881194681124034876366085409173256225880340380697430426400340335697746982612210651261663336809352350985500124937378898962531632554096922628267623880826111604532324126126306669585697107148075529112823756979348202010664121624797864346524189867374465049932001242148918996462532872286294543598533314294257370782087950497550753647435916470074094891854024467720262826115659025768658450713284568920146654514553417637209829323067503871840632369002904092871992379042876164597231887158809123636136331557603257187017886034811833044841024973196395414509365117368794156674263365374035319213910893314992796435499733855393451914961399946786875883825562907607727773440739718015572502753397408702445679368544073064162164369479239176065562111941866553253281058671984473305368624760205446727478255186014701891191110706583900313521694866153112305568134374833667087891535782449483201273098466451436476907069263975912164165200473337863433467933670138283344210036874507418280787967958096395287302138770844165808119220620275342676859555183311984796629988652735865050959510658521502240301350601504615261077093310661686103363946937941517024590602894886773205284575122188014219358897300272188883226563529568713742432557434925399938342892735623094262934336920628911416411284147544422183826292124748094273273293700013535555057025717391146413090378582898551449808567354552123248091478917600922247117332418574113603319995448515924168397768642125106577188308827609927349310529866710063495334790378091714161677841977176770268683642204366037199870764194046450153372580837048065323908815121384061316860658209826115434032409914252566080722894181701303903152028783165358865041663248500218600103027603977861622328698673141569813497180591844754517388723921328748608720040503233245638241786174002878268812922805015013851217237621047025436561767742035277373272698484521003529979905678317488753062887360475185765618989140179058278401949548037730653017255680041792067779554667616127832799895928263295234760201369390387094078389257690141559352157834747552742952537783922308192642610041312741801003562347316698201287515262054572280524471809113748681566730313773686204915123031029010464268139768962418790608233680852053409128909856387101883169123890440464697656855710666748697101823806882441450914401249930154718247309103094982423731363734627644196289202415366276499628212146833334442847187296638956602041804202606683302864482086679570263640115699749685601620306467577062237375751450148712490855781347435465013758277400615383184059326442427582950936908758150775949489487383778769877746628551772932717656815258875694652339619954089217160442851301226826691448926585247953026385758795070212094327649678976858568929655008758273215721349471501512000131085104751367671022409698050909797637050986281231684366686825727750197249741060102056926150058964606041707176607162071845660900868293896543539349050927529130694127873795121046705997035806106678726037847411941881445491287430771270578354829633011526371540330849865556680549213080383321460133639277939062084059699996054597098156039416401453793518626183978433124075271311797130062379510368179403791305883065308504848628174403684681764773328102869219502628608898348033089240957209060266080964335038399614213734583202006060300124167019688835328397538019375618100097984511627848881233687248756317382719762127783146032917311619626735572150578956091143202544884879945970359899146312554458674687597655798767940412043933612620799866426376366998637460933468169738947319130130739209323276528886574176580518662263157870304497153869332075508908959664900590424118361298561745535976056327416501943104377627625009226375291818013457481955492864690171876724833793730374965535060806182274084398936617223506879654414919203041596532797981919252557940516854550590774147172819649984463711475891721581127298374804564729893308318320703152913171611380708631703665734436769529058304267975329054002960458986776463603807472525715773197528296885983625042287399404537555326855793908912399805349589958317440887394116443488632478690637510241535241119230835863241778414694703074157598988218068526507699406109167670265970845286058977916161840071052271932023346817055336340646400459686251248249021012211670927372714232254211181581890152580601040542463506439363435462252932219211575972267078912915017504187457130788876825737365224551469704073803934186473568882247514651313657078686285792674668997041307690432871111049116135337641218783706544705187053680836384198749656592564760995685435760735398106507139919709833420210928812429682877647409578089520371341334129950604656947284515724880838705207241645963261566404940428310888277547404566473090641004679338265186486358528892826591486267959277146308522702275118176814446479013537809020354003984773080372462377627965840209470793962605334131066210376788972774056938659806870961517584784399603030089937438560003895138086831778784954453397728481504912898880411671539585953374145715508976228051231654885564576144789165663776818065613024864303821891892894093934787666032309321698821457596709997533033451974869296647445788482684737551941198801500938582315281645079934669907561366194010841815413620890352850005393799404465867994996220580164964811604147145802454971651449212716951758935674956499414770543747389184669431981686304245137610259566657276460308247812677338425908917017630767323116224390039125711597393101498981275368980087051086264887466781254485709172448757928672645738956489965778261159386283001142061274340514378991045316292921558808450708852280645174764153633726123287501213626264422462343533778653378845638995615259672090271320164241779140340114500401702246151006869807849928415770815393037118420816625372602753031673833158705249021889756597167196109373533550931812316313327101088123317069581251659614171799052701766851848193804211488503015094418616171102243074981142423582783621987667811211210454038379458915086300135615820207671667795259833297764360580906374804389678779620925676844627331346632409387705921388503064267640121589570189256653468562333681895101126013836802214157269583375036379235895511434734269723283845569694062517573012865355928038204085554515701578506971244240183823457397238161631191524336865434081463168642791334166643075857749096571782786451113249380867985835948033073243891314428385772202462792827562184553723717149952438904858501776768312654254325336774994692530581494228149011853330478731298371800913138421994147099013806005659419321802553673975660914143212506810268993425713389724635120982396122944373743597429515364255323736045872249615417945164979221417233860164605684446775715527534524186900356910790922182342268068126203774718196290881735697035295895292157283507462524956450819932174786270027025846344373047054127438257649202990738187606515828917802988360662846966594058241766776660030662066846975438516428694607666327846184600918375210730867395840411201819580700880616249924888145974461412535274207514927478945186347207867000877760733059308335633580211087695020413312346799772869486502257040422593832410305861024265930808932980836452352625323636759425960261739537605614301993710968112618267415914643641886852160663325524891109205694851241916027260296956874728686399838713389998416600814896527582498846525180613092950201215078413777428080414757943319753768340911712684211694609899711937048357682726756451503655423598989643948839530743531969455201552940180060793993717624584415019083143054900880961467831096499943425665662737762271868530202801260187692188263543080632056468394985228199082566847661501616199466125243556742051435739677501820550110687212978479617516000780297452333831908886041582462236334480818510083628179029421917993394437356385534863895363319692229986159606442177606411129736779943565530302568880810336811396084435129788008031447755758347805603438472013560740849289363341924161620730654590202835800166145356392909782704192881611910697117396358727969437239911004472231927822466603037303089734450558706439956229608733464438358589761334576660267970451912285779047174508701747198737641484122450592763090849538378799783652165097329162396788099667093024295965447273980018772253546150060520113109913393298309103025350794790606844557976589266005394890575078940474575971320775653760719455249339677792188078767954811756766395504617755487321081771655545419880755252848442381011411036214114693706858886142576044356302848577017314116281636034696469433581149642400977274963326374198566233057262590848593841873628407502721295230365863024199497351654524234517009211795399247601494908164577038671117116782016046562203392698939706125490468943549562786253265327986400752437288757668956833415062464775552908116356575791703996508867264087447426938922220782531995702000840494364151351732818753194807680509355208865780394165389611122639766259558786618936141400033051638850322747323072874058752658189124421713053666897117630104834636638084343343461493652764685435696334173923387914194742230326266148738910089188839559469991916936227406888155199380225986875872008379838472577230382618614457572781028335800417029208196666459444481504713092603336530985565586511528486533372924779460759053441710803178453296688928418546857406984722726728081257081250277261933216588876135016166574765008721074824322244717563582422620062249721034295635956447029868415761726884787557976577198812402633763280274308453241517687805052919786234002957793061589542136975443851489039256038683072315137528755319093689244414601368831494094201712145575185212827559698219496241004762174927986666543727969016395514181086554346533982404140241960305441939891080993871001865888335370036598679765079695658987533919230095607437999647787188402908289887904252924234600272959811180619530292440824608601043584940362983636941083583479473646930027811432175229082117080313369270032972315329981457083230707070313998920377912504696012306941634726814540937540350852297515849160469208077825019077085543145861672130527146334069330842179293496844099308959945478419837695984017649659766593625617886535758514237233795581141588974226068932636866783956032085638303158156291994637436342625208871176172986003763241580052652853630018279937688724229990637073461237163558794208235176190523992327733287163601795921468508777881453353670013979507220149784275390838529452730434462905915453588009287410039369767488605233390131660790226614353984938756545945524347353132468810984446660644981881535704494305637103094073889114384924169337412041183209769154733929782209751888490620772008558208333840303614270730872295436854252359594593766756464805494436791122731582765910325885384490368973072943380650450646454199800667795887147558539493643034901509666409645185478353162475641766055387608450194594861668722084082368896071674749896644058537903321308906893484589871683831564124255795934156112693216370045851834576139323669628452047738907267329384481132577841308704626391258835239442244551360630398178263476333549334734263687177948852294812884932635890795201909658691972336639363950404461142852780278683414408537235723381138295296510808105819673116812663872507043045048903273259334886125395477802653764945728842852665580466852858440435560674088347308259943325350840406085735423308892136145345849080841607587252714101749923296135024749019953689051902497455908769165589729170533581973743188514294668495251242289891278613600842058028354887027348036697238657679241475271890444071169040572487457373726619921056875749238530497719350441675369958124547212930650690862908943803945895342758758812686489923413795199170325919800314466381776440999496763125624096657163858836661985978288032754106583084689720407284741657314712506221132499719313062460637621364029335104212381825156012666351468274812469608475311375974131315987286494754396212050560772708960561607065592849462163420744260904219875486816815407440169535739726096952785835549487754877628049861278428890580704123783214695873255651648438727545954104280176176112132004383504007895446405513390988844403839289035762593923264335625306517350984320337116019173156021873957638608347824198304518712931268910605738786040704496635431728869855500175313898660996505291507007147046729230656025148203732916659261110975648975110578747442595726083662680389042195457960250379404834212898144224315721360950656540649327230311071666414120113014764472305224007762378280495920983760800449859979382437025912624573275965196889578642908107518333124443941215572056121450725693496883321710373761511905687830169187971166724324927593082066263519292281808448927996522316551762578535130669248252110012460530728043409288068021579010281907426441718097160507236635637710390331517759866190624321203398965571689306461801239891883807587216800333787380022261537526124747605432106104724403949734402029013168061405902899780532580097845068016731425208052644443473779511353845268575884010201085134875806722644785502992938966911389729928336351034264978724909443085588869089323080063474763273637794055168548376593604125721183381077902416292323713085430005869060456324804100650187387372406486703036882277441363185544930394466300763252939976095509572791987226346555861507990863622206659784345558978832600164096740894869939575453635758246395684339997648239973267096201039792757130896547898075357109514403121439770044801284543101799286505867467284089850781218300802099739467767158595899379694654328634322979769220065346925528533398468762086199847829172848396775996448597435558756266519738332695210169897147119312283357749726258312470684696671618071992440022902399940547223371294643666074994686018298846096918962218374899618019244872695580174230325207530302457984757654308672727599215262967801573494233731136203414613781604811600184724363983604587021909894346069742932215083035939223353982414324357374816228568659780375872981852664875602020603978867385996893395255429395625677357833476313557091996758630225747793161397554496039822768023015386535408498349518317818255599948685673369014641278259659744494460094643657626356309861827970363517565989268625867420449869228668064478439848060708195407809385034594196877640662129217138121770075190472367471613729769220717331435306636288748947685768837506727488481997790884757817139205727464761198616098810665142123702098933286595432077357486246236778894087410256723409840009351721589416911220353488386684524998155128654290198284384916571909501722006281076627721789632031694003756069827966197567512567203341439017678177442879821523787378045775589309354076112604928650631079708400463830778085066733364878941394405813141568157799028116160746466638619108914778219011043824683249184868896072257545088692153464283143327881617768868394650406283913642758533303689465898052021642523539902383260578590023200379581301210453443434791684138054063654395729466619477842865710892536335075355910316302758434499304494936998769123960096300731101712877115320603426922316973272836932894977329045082254918912336263863625959267256557957478828780401945840779325981986301760261499672823690239488342904853301212452592087593117669478860808018522813233599077518273464627308760347255155672879629307645374140784719910185812069396711581052554098686978185448104575913500790972386906658853286518006221686818261756795179873264049170229325905788858904220179755713008726840520011300852718016556239806681401192366925162177205183431814456844605835298913849100566261977841356279828643028699312273711019526497622824978654971232370425223284269091468421181607842224500257090332518798751430317288166480354442300199558252434452655355660516472192245874419230351980363917469086141336847072740869290682213055270153248604239340512961214216122285820795770582063255956550160503607630637048640947497631825017839327837495665572323989509528928113435235692329185455216148772190654846724603438885604448858154903761143843293282936785716524997583744678380198494308038004631437683230167830746762638874114417977579969190373694191646048114107002267355154599216127741374767058270962820368383759177495883997148431388482401928463360501081026612960393231160993385559566267488322225728558308579672108428002176653502799600654571170627232927765497888285596628317162877612512631411284580435644147199620357832005198139573779811376256245500156375521244207611924530066451477575367386411406951533314818614756407194799109472913804474456964296969395057725539498257052323062588495043018321333180086473988145114352762546794601757455820175911958238063959407997041684515482618747619622788061572920959454716684080160801547583609150134426177852456979988912230490677869405288038517391331544243005114612703511542145180565976588060122415445745126364094230575925109852197726251141639437062194597048234422696283462771482278676247381383121529705109902955420787249118661630189663032156328771780236621793296919808110423043844606998381659748622398539541714315358241649362644560135390230395133685986880995693850266747225043569004832897127556355695063222667173254782774535450894191727057146028611346310526163814023147441787150420249806411307631304490454161435866040171872370724354310231185020834337739714393581004855835399024004467650599808374072619691937719287488856951151860756870887121134729775103790367804487711138523015585758984065820728952016598238830892048949090315253337791650875537605244010911613581132153107629966432374429821755213692412839183539469969398801859380805207318721183236715513200270373542228589230718074109951759409559446788239556415075660461021046522615061929322883783687767344344338168433288372665739704981693148401952235364531196868549863739389042979200740852581251059490496261618141045961646707704870291458276623826704610071105225121071876172209130768492061929328587821828396944900454160451228030195804295176918374251482213464015768675776616803556588032670607121403615070487643017989461088620974421316151369907662101722241723446728395694575719056746007545392265452968121724864001115903485096315245572368759113671926825342877216056803754203754308599400213922404420271807709237799142530845594879421990821395501631017609397725263610127960087481377130194948242489825150762758295553915391811135432438448902833775844457646306387717010086471930931556525693111790788932421532106162279679293329817435833801275799049454477911789235212530700615227209786132051514380427206545913846813564651129630467556435988931784692160909648157832981663467333731734202854579769999034841955664520784877393262466452803941293851368070364003133244992768033388870616154844914290706594536961405572895119756918227634794906576937009939917141377299915396749628561496128478803841053746013822132771074508826097943372016302965924583667243428289918039848401529414801500756152626850762352487318636876869626033175637602650406144772554168856545290668838238623493567942816147437652767730505384755892026542449727341209007232901556457248775242041589374919030154282192409454452861937739292090899030269026158614421254127564182043232154605942395793929136164590336699150080788977299518758949357479039636237047761513905352901126635801241892773161417450760555634578461732740941184476024667027899508126472604824171243065150307367539412924007907255778654287250240623906245771205382625927944332786548526112142810149466812884874844779065131495731258126369253337753782654225934075522617398355052342059038642217348735587953710721013652290687002617006320227958110858390855641562028671201788268301484024091263812062219867165958385810259227834429474664951087032110321167817278296429604227325506583654367101552179974494619395391623378708368028618275512782698090129955158685654131892842240541499058129415599069602752346596909387589232614250957447112338055793786590719149682518615556254869764053356701606938548610823184419416984814196217757799340660027161876132148647338025781042896125969318343293400120283525801482729094272660677121003820878922178902378996827603662910702259133367979907115795748652927910280195974576932344694617028742842866487313170099768479434864676135867848044390647463564790504411102929070541995523682830376354778738942377202037460053589256902961519010308634966675790569794085190741044793123959685772841584829074133919255492334519154220908890969758422571098786940639325793592652591981198002143269907070862016998158382065859447391894852899829957361702403091290444162575068385346168615590090629256455067295186838885086035684635082409012384415525715904486897845380361966709557644439237995821797471135014099491782095169159383726134827383839953423504400492598475876775841178166886949984860374838891590831638934999025399711012047259916545849222443394560501339391361593072320384483780593334832733275749799082296333536375446712980512151072337963715007499741376646040679859190439571447974728686487330818656926074123474071303960620255640295006502423292832788272990602581520048946995018645285995401364303621117793622141582826949023720299172436153093667014882717625596522526759287698283537003436438525892362520948341285508105482842502131988951794981163942968265666267096463699140347469214290561564322519286129323265032259489880501308646266273961610367340879844445056129502756801588587888442189694383465106316021996360452656935892093903282713856126719362833682528218876051029317638851675922814744857577471034072441297690895276145263627768277840419903010609954391036213851058280661914310426016221740954460747693606835602191898747128191300662521531155139713473738279012408348289763147251418673036034417385811685457489708854954390461665160761470276482181898155272972026922510540690745196083290950560971716625107797541413364350544638364997438613618607636889900468700037922448871818555776526959467295445127153993901694359586119428849268913189890668471024206340562038971212959488753411448508838927068788190456104870009751764064187019978403806531390519899642817312568030024425767458722883699978473501401890198704939307487563968424060773362407996510782668930942610863198600517049000010914696249234229115790116264359107045174458464211734067520706240552540846017965256014943404187837543536172931161033693268030757333735302830813030998450670372613814240480116600441600606589758115504226461042433211073964843124823510378668203126829153830882959726130110092654796040000046007689577273873482325917632994426969395473606056751014782962068723037340464744144084274910430962043558975942881067514227725521365254932287301291680629158578633519965676549203077057407414975463213617270227270560495583459616983221275964514870887924082349924224445192547429452406382151566389775161933201359213249802892786344190143657076103540335186135009133732419826845556920764277773278340030938656428557125987336646802077104803034617849506403864553797318099751660160904629913081404009276539303811798211425440975363431609746916326609348087892532196741415502991769409272304773318899184312428096552837981207139854841114492941821486018734057955352584538488432879385124592788600024981823318447681688525014421866933906686008847445802597571671837888415551199971100711491835917479631259772929920949727539665930663462510997855457428903491112369307671627482713104478156780906128880491224998036002965068878502964863033620804921809650476747520156458808796233198802934216810822687555535487405993032024634297305334466237507581780184525195216476612946946182292866975949182322008688897155927606090905438598396535021599275692363049557846873141831798725458089658744370447688472405645942521536917550342999198082472829853677593109646695604487524021193610480163414776500257465328537886073560031959237133568629718393069424380135047473167981825282623051405799818976035009424767356172816424377758288761343160657788875585572790509769776096818943756734025554333149053459213000597462218079907210782790879386878336099699663082959545765366929547043515269769287080083240191995714304221319677855006829727333755768411912766671327149169012977249553694430290864419982583456408838069304815636031742389986331996678589214180092145650649048921556123633994861030871864573397791560878606241860261652622928227487667515937909445116414758507691987785315939963635468920980882092250252960378757675796051670859992030415301817068355485067839093113061049830312005928080456214355484103240451279047601830065560494474037507902948362788506769275720108077277152943279378019499817262638653074632544864021833107758914633109612045938332722893887424068164768740891332674465075631131302774230937871440507344914750681730017477017378914320501441344859920555415699516034972026370965825080916909672133291603373949685268675491446261357463792128665693120941293293315959786232170970086534469719690893715176325879006632430386131574183155436074670829660598499484501794296907022146363596102210072484209366521991238183284894415634525010234934380826410335903201365660606567582828022632245666956611022408389141940814407485430605619304661901881005523383320212575139851450782894616772283288635784631186434771289007322418669155631497616251730781245811792993623291124174361200862460238437087402791046194121642652253598303918197884485304541118350313220327709915531482060167272517768696298275262839007582436660157082819841525547019039609324197672163682273218353364850726978884390075402756556787022365937309271246860305279537855150860246285029046936821194794152186338569908435771648398238002875657451655186535961696031608160075506488814234432823288109484031824710042655376694877752514378797594881860776235147248342617537313879463753202366147282391064286922704268840481289089863641408642261951634806162919723109989368758387483593927163539032305413524886003289627612211098849090540976555198022305595555526627825047503165475738551322798311079296358853912279651754706235883254569623177838519502308605896759025365641370646713566955469213645225410847500169362489856458467462274703705400503123154958167871717575542126367324424243264767376446222098971535309348868269531629710165133151601645905731574651455418525972640271287333419736138765538334424186266960121725894924538234521745948786485415196623446110184474216129060977101349640199039041285541298659172609619189236255358321910505574208133042392464777861161227713540237616287497533477973026961072809612712078658085797990753817245885297771340788532166265286627936292671450610605686870523977882643709603861541986362476503100020481348853526112338696476650621071012834278214473659678531274696798673805159957426217909752180508580563667036780039399206358536223376380732766989257824105019608564719307216047313865167659803364318575844479693548246419836682801082461418212558520332817435185416031395655500563559766386035041958466399345031061495473747725032143408525336343846628209046674594572865579822210849016537454452046933028888048322058592892058764331803564297536264049835152042921280568729377396146394396997218989404405861657181010004396877047600836882726648559577247909347201755091595053372786586461658654723548311769074640844573198770760740678702859815870973435286747400798064070669934014282038885141803478062921902999692114315898722947344008459786968790732010318455343925220043685638269238307148037524884075312305892521170916205069512540900045386177317380668301459260279012810106378644671752227184464347003560407182272703307146320719125301133844574005669750448554419384394355060512665764063573475866490886641199228855396500013121357401439179385984843990446441859771384344545649493190743705702322878833256463987433380631428373631547487699130011242773399117805166065391032129891574050758770701790426302791521950998138283565576420935443632470938460691449758723016208378615691397850320508588028921615529662324948384473530505402908442385657970625768157209421727547092631379836701990005237887274643883755144539564731039306340549275452674570323162170122838680641687636559964079764026540534298202124625651034583408763979621971289842381899786666243220412872865995933875475894620024143031310939086645251958288914310496056744728679151703675488386001380497798134803196255325116049925602410282734062400951753279175546082158998757916273881123398933453012610402167373523680816635784997632888274787219409764291821285666812456305270258356872972004036561880971577283946616183436066648003925604098243740893744981770995912714239585340884742619521597601704515579622686690164866682020678789850441095136274165812048466091670212718230524379818790848503274414684987051149478706210665280556679331845019557954788282616702025087009216987776003585058273820237109410403101551010421681617072969314387979779754319209054825065266353311701629358505004637507210301951847217244656446770354173792171966973352166010043661859143276945695622604143836279937909366392495113843826088568826523995626238814617831717876884820421496732044727220485639187493177173353491544621195767451491278141173600385772901642783990906776539935330716036293210264663693573725862138123506841740660035101736361998733376196984078582361578209774088863818532106443429133024787598716209641487109470991274782385541518388514831902546736657667798648429043856960759194941295297272125789064275692685961597718083978407627526529503170646237109677968943134150546947615585984525498478209302740552750741066437952476880601062440947424680779672830289613283560087957608799283756901467064251949015619558119506214959885291414168695538964205803116452784828761796762807724607125867277264854597303168430530735194788135044594882259326108413151934699933565426200447623516888788785227111939190534750995392432359089167225513789932073091876172166532276084977821733772289772248966149485247499324980087015652210937397125165266660401085490538058115241796760037149289343299340203400022904433362025054382360484044605022669721882868253207595371577591872089266885920187434090756630039201295136674696816331103886887161766572907682944356083991145839941731507792836893589014731109368363358102760312105618809713537922042564320915413825493771040280218201767839175235641136245204143732930002203903870284407523373426821637143417559892619828488020103604726263454225263485382536069674912939722345055056763052841544723601432305318710937925812484095077605735727674724696751330404970592515561732789012534804444791737033308938300522733004867443404191351849537058498595071691656227779975101859019809903838374377707424177504547296410109036115168906498807387134723304652171505355874251019553736164961744112444356873888229416317239249452904931364298546288457809011451389019146777222811496487167828975610964403393315776866103743899115732338526238729931902224295714425888497580383920017058787476313884620566453212922919027741519910613830791561357359813221171170909078920415420403669203496903083568728820517035508037969241048975179497331796252326256419383700565726884434985387393604702219016670792319536185672291533588104374783732624025039431739107186774791692310052750743903436590677155916582915038932596784109588147690564763939469278005657437291419225569258541801543693294504608118897011063922780335396663505795190934061715582945483629937863084370680565449629065149330892006043757896214658414979186655905443766296816461410201990959674881303979857769953144978101515055474846277824919769203927928642301345629773956593513352271202531415806139683233390770141279165077718424381019889738969199582628909230683051146980910760822940396784704806593565676738065671572598218669827495927885004878948658944014867256924476956520780979433167128689369385080839481208687298681180239580332695525951546396023346148747676331829446796260321830371530734008332451977597496504061752047622752230843378365375361368621255204300331412632014590504807110534163511789214162278100894353696289036217092367483733738440394182632988417365781006184364271679232344247220314137147237254659331247336515056590363692197830302197482025962013705973497610686550136822116238653972509730354164490935651182368654040149173826870742708228070029811511913169544923725302616537965206983338696172510832081752307506253352869533267931522532568775591755672831370248209101615678633742622068281722363333064560952345435917983491378182825317087604871058669447289230133687426606382219628491640601087607490817242175607140065857349172306731666651229179910554870861410866390260548757893349954395855940381964321468034843397371566028375018018020003930163585598332484268863240242831557380398072017698515420480736898742942284575022790427568665344804761094828024274883601378244245780228390331685230174134772507385122518993206289162638969926326985870777970731201981763930736962609050802586068474115567599296781240070691993657749817621705479347803769935223874333837190683057678412974381999093752413684727973107427871411540596178772201008318213510449687777451767926075027531685527545845247366724078790546323386164045856260564928161663567055149974249863942723235559054005876225900649575217998698666875327242176515807457756945191517973392972945853898655332455740391204616609417660708714910695222453393903338727912817952446738558208378452651141849739039786190224863443992883322644080285373508948503790725539801878633347567124942849914767869230811863158132553303421016297847310036149850404567025882720638446039289873287806961294379411659997877125588878981564323329885305408405188397076095933332815553626887732628788386439255169838554303477452990107981140861643882534645158078542158494854458460885276080239432835954929369891558823383087421893415117076646039893876471799771760052198118399947185580206544364156441945403961249228984600475221769305812789398735271388822674100226108639354511116722493445289183217645742664549164765874948677057972116052328310260697707094414009334706655378420370885788791694765565910000988762914844214018910609050635348678057984663750443351248712801900469252711687510671563618429811748692327448710342222892171390437515640717438401782132712565065094569638927839602272363401888492749344186737780493255920386355696099538581017558707817140778612092214350764806484689741357990522296239429048646389253490775075662596360680612364667974756871183416863279362351638375842726775622601648196795677898064968815176522480126176050041082367186680882806223434119891367870338747837699851337992510030519996614900345233575795678091422574659718256729912102478143842695078936071835251186673826522322379617057972203446736937649263129154478541108230003640675367222600041666903831564804332642323562327670458139145317653066049629813761188931567470766140387431219384565485962341397340706033617508428260757539590019910748600122399343438373121683560768545581052141120088346839159442420668634264882268096950137134300969467299415122310301777339729873555008992413767318574262459062261735739916534904704919646700714364584896509557692758196625010300351598498095679024546631609194500179135496557841242715082453795453670429061290657899021349483177872912593954860502525826092829878962247452729025214873454316978169189583504157037697121561041146492696488661577955738445319245220469265844115815897003408318919631386916704220238165242982523946413621271023153457871862566114455575406319251612264496805944220460806016794066325208478212041644997658017603128981091631536480610953585026556674325974382502617789266794677218796418700090154677856458659621828984023013525105141723311782225131037086822613507248901967780648119787328935196850099574879367462913053467709305969447477086398608005699357048058047395543121057024705777101144190062095608840599185024280377650296180954629232033842210948065906134398273026112085228331323714497392705275735924416014064807060830609630294634403921085654656717855420648713143121280842234687353730364869271700287286578720377340342975905606039138583407489819422048839062234546172128906852388237459471170826748704649920894747100313494298594189954435663959461006259169653112419763644420940727661415631739097255173481750552483058329171166255770116435215785775685529563323781529190191768081973105781585824115253299222060781796791734378855310729990314105811060141169356651811255477769439421733634353177690973850242355384786529382599292356653057554363492691022249777930407569231679444820782948818038219491941475148447306082307177646878432236522044284837459762567540063859141731175951652657970623401722129152491245910453200684218016796886330145298898266852127725812334440977088036581517891355334008294932117307453458615241676141735285589789576005429073941544638358960798758267635686703183247598488264280326615068289654542985686603973497982542624584350149905146983054268538134633830567082835354327673847897324692640324455919717739430580004395104831742900338706348821249504666123065624045446190854761806515852855242718656113080051622872593993906332211404258709808136081996095661268712536657810932331401409367329807630266865196344845068154760219200117906499904507176219285833253361957820569228291088117315039212983157615825669434312809271694722712172941376179959622416871610528577800659035825186506008758169621327541244601805995021588532329640645777694493684889080631596617097065928314125352674179076274081898327719770061577656930953568684035089270234097036840726697512265573737314204597122665638737758402701480053521476605699927739139583761871122716674134464992361419911633209774567502685423480087430946278449335795496839271527197829500923054857371106609930809641841680249406143698409824218904291376777513320548072879613331200018087681799943621073626590125424503772082190440758026354401689779256567905796721349610867595572911399388694578946407270630517044545350417810218301817589371879522596370521003934524164531842984696922683741421221612936557385117065741950545331285199553247247750440372587265624746278417560870783340064321021467798683910919630014410552074441754377606529119209644607830671460732488939850875633333478831605332913707534007596199956274454260115884363617474463750068230337923044706363113980854481421194595536570594232151283777495182199382844545359435281547100021555039969954281790699028226836220393734792334251423448384915134501429017106760050067116482522282620134982498071469031708602399526954733798052268245851287584478722975445587505063983761415287093593191743439666908065345918622086560360758140266971932755360503030687870898471067070774372334012046990364352548111974306323174715341235348655000382711004118794500519811098528092425074591640763850626165166081846638720663269657933950017144381630432713674832206612750399502120729909233108877677722459693324736422428202951326664084803756461752230240039029369718829154465643372198425576882586161541388546004639609370082936600380488110906567000620397471193904749702896187434179379111899518636465569349232848446552546742246175162782009085053296824803058861569885513064543337709196364860452481214077106800245607467607812821580842141364452838007911226147263244411876178574883647969760884931344087395243443487664073376280899472621692353699564535578148279343922101361279786016922705942071194038958798929450919364435665031953224897007078000892156606345327861174779494292020931469549842984772712958196362624377035240058601997951741521913639072706473873591152745328723488301659591864063458293769135323225698589374590034462591420930488429317123002600775874993714253072554737934707915293323169035900563660308902881945069951824859711129553645310668617978102067888390598023713321125103311574359006312923523910265991496082771222775330599153616046660512190773701895428034842340724707715910032799830324468574606941942149654664628489899726985868565986931395424446660858032965992846537540656634281681503761463395438954624626809975682471811081746799752050473374830881206240622938505204016146971763490522173917766612875383511225591149621521122335156692278470446581329373381489970774996489440055665262760562498766107953975229819718986752509497150657622090072584626537363431062353723154309323292230865892951826195668233398215020005328725975070547752467184469101149427553536934102624818498171788105180186017177471284406265378334530865446911225039029338689228412788667902906908748460347148149306816811610761748663929269369120327334561353361606717204089834296493252988953376248849901177601332555734265053914624121925473704476517037725717098085089174148203828068299312019935028370761029659998560540658330222068852348272267677375484802927766396239610169766391548722216672574978522288278870376290367214800170186675348484632427927312296921751237743155558909124670892238398925359104100567083825420741131966407442959777172592505729420791286997340690520409432945484081015031431831815893408993791908116748948042136176638776198708584760121609335564849467349169982467998402709950174369328649612803933254035482338239689076442348534775448774668143037908828316626091730438589507192885626530819024502111749837245130981176877835322232915864517539924620617491858845114473648849924194439327993536200269901617017016750693102001625433729152794761865838305259305043539448333698350178180569990905720574481947805100902943710849173030525511652907955435966349280880123319198078057159646158597349028440481468409567744225960568188813290715067092614232355818441145689047001787317700865532312941548461175578140791247067669121604826231260481214785568326565855808609572854011137914819004270360527798656403724916029296911748856080567511572455512750798340493098246208498690065269771778310933149176556821001401765337021270796615994398931901018088795576879617718155146430477992002478251106935279799384879794157824450755006307523412472455637249139495924335473179075350933543123062718535653386755504040761722306142009317913252495578957889123300906888756962445499101849636593340001874941414609116111552075978662421922545998922479279086354336077602303489696565047025321064777133309103424774788760077289435166744882634546553916790277055694968533744978942748095043687660814095789541011831100950265261449807278453140754296387704312799617407675166528513129652163955391185273308598156079686455298001244889998629241192942482402139951423690882160956157645637089396061027407824611391036723799029605903905776820464254005571396533918565714879766738572509392128531903614730099785348828318600626030539677434316076940527704767935167673778837541847403600030526025437840141202823268709525890338550433776474920362569851028176639803827761350336131804056941316114590791629146974549056434809442445715516225550044197605849726198438761863005294792027916581851378065010883088516014426491975743489614135688401663402889262057115882018876168374731232179171339503560227689283284760192466970205770867177430968329921455864126992302253156409495091964245480756653059818565426797844231338386695818345050780076814174609233318159071719412987748666502353617860014920981413013703756165610549118112993871081560853087941962876279286217173416583456726460653449316611846765961191710133239561275669760716339894842173158346180012866216950395832449855388840979459606576140648440027507414098445935829552750622171860475572963490808332541957746076041597138139113786073340616835691766019034999507443388388084496723631927683454081827595469878266787699935135805481739746136588087266520358645976199394879621368978712574044756889265010033342178129944536070116095142855932887820339920094338898010092396565725412775045898915270747737126245181915716854437203630590355098166241744201125169278629480004557681605733255499576791728244648978985353044577054143916747638646483736121334157252202636430298395174101200742555174397202537645522404376521194874830302754193473043356385472341863630044771601280317863523594514832826268696956568513258733604709481194413941145467007950184294202619916624276211490839210233737197113467929305984025874814121276883634251469738826598383357723919089879876759026716517426475636766671924615726098625100974092365895519477850985868458971594287405834595771641818101701150325798828996281906440668485026074028473973336034671204411145136642668849878667462089332415667239382973439815886671425984888460819514724116034416570306727007412700177246999617933246910006535388662494863025064000851952931328284697472498549129981542997253337917628871540592087778039801868075500384955951778643045719916186564478717403217132639816099321484088225053698740048858846751809887086291189582903291401087657852306711447880639320254068564354863006090474841379977187278593393247712259383635996384501297812728572002369566758733180033197984291823729163830485122650553810616415501541283440475645305755924411045598322659164913781522122613772317608743393263143696107578153788071153898402663311032585366255210244218931345782936664683817050651651236595787989958395932479754330729093746323490284494462196837454134819875498060574300779771768431609731091092859561022940064858476278097779666212002183088222344146807251389199737426808750264376024855673933076002234694517997256920634448061336937173728272688510712166353877746299806454712484336329459560914701193682041133365583613131200879405243103273189444409752568188860972032014907690146522953745814387987876997278168059851178791727278226704301662082008431109266044236420955775255796434921105192307748445493046825917825907942705879606302067484179936180557401349250084320099359945461503396406459951231347385298619489676919320258618900003172960958941076258099417665921283744373100666555883976525846317569694070451726604090028068261166289520520796665970791342871824174088111334420677117465790531933562208611048751642935604250322547786387123241197674740751789908075140499280392661821720803001257582612756936544440711258790943085427209625092715540626056938384683507378410288903556295549915899068683426268426027607908728516965489932870384732070053068416671427347295476354488157910004949694684422169130377946027123128481825664160185289750184729690922428762176886492872896737730840709421969241565901285138036842895101552713392110580263953402382276500779216768422956675983071499644230871248154631955236210511575070177823215424060104682352422739934490965613609998165094399507357801322410654750605639597219253722047468227004474406767629088012577419232736029855492148400841529894069465075912143112013835802962546849426874217461284890296802512853077009468150664900382801361520881054686237540281605059893841421315184806185240795371620405324920055296099427796641469384834780470767912982619476920252933278119576279056855288895097727318940771273191235468780483452810937137500121360026770738480930854100691803384188171604003262986956230950812824298125241033024543817001134581317379890187213090249208644144674210209609206661111198712258586934661329746834397774040991195811470018445735514272939746548626914970746859250376515314525959778677200450879729354739858853996729745009992704427437127679934475760422945385553221512261981347208095698070691026336132853239460445797076479088135402298494367997230629503051124380795387725446449125351224349585748368455047448719882322360890671035876288638078181567187650596559917285034408015970730029556123990189906054920908300679430885590912508651248612007068364448707830148330066302688394102920875980816441128522418037016277494432681659612261031223421395456912836119043663782942368659111966254873908101181783694361368055813499165807389878359153615032035321908509625462797934791763755337637814245819042451365831603871116021325227873188992651835642232688861181103288462434307455486872451049483410498009381453264610661492642034430423102793858476986506706327621415330539904735805024711131043704850317143793765699661623662750340859225029220564389226636473482923792575907497521513163084717473502632677197241723241950742958364369658113403477900450655941774255434699934802163872271558888728164676032326656847654834970943959003714244102146755783408769745768831065726970307700633665795133613234787808257455823688077498785057482960640762779284502272691655401958616344757510549202573755134630823929867299423014262710668612284213635401014032533659281491435657770893502026538543312400259324564604018564377169236230121226344941171344760796701933375358629286455681571961022935673133484622603138215419862263999843369017555184636918380365018506677122821589784653238535083735544206250371040823895248508130078365925080808541627541197058136327523103486835283368197103934853702802657236644179210228904902382655402998331213466149350878830470297428752342201032510141055184402173797256045627847923330241868777275743530901071153265746221110208577343003851710426455018263175940559040517919027795044244839650377887826466841012509804375596143086133297944076960277555714350793437745883284878830553227263208523231988148275320421596626224655194206533575657312511562678582781901784305548336275152084437133644553154168069280159502099264026944534033319144764538600662977969227009809814939539500196877651667427424896075329532482952213635361065891539141313403028210328060817242074165903129568807954329427249378458656997147713722363096348102055366513795955830957398314361371654678558858538433676507397465683920219248269305526853112118282348108942328906146979673642637929104796986235649874290286018507751286751091170959926827122965956738139707589697970462299848097752352373921451323410935792015736724994211463652891179812813978636458625504192252738195420683557572785156829443279332437547154479691536039235570771367714560060849091901851783518619230445900605730263205470434154878029732861065041945217376033856582754232676578270310615382440277956288483035074140153418101978076267867270051652827411832838896173496826900914430673292059271000351631602252785850564250363786315525410374481957622304196879769992221491506352806055052161575066747722491246341913013941862815651010923751277110198231967512596460744385049974429138920567652216465844277879105979290236952118524844122340734700951755787359779436859391917874632192099419496578346849829664297019108345582270156986181014524597696452259087680064119910792858295710484267205381200713603121439874684461851840078978125030185354172478826914181218361842451493352411508040977134824779093157138728416358083686316987588993104410057950520200073047733366987603890606333380724861151307402802077275298984825221763242243270748852829642479018749760297947381272877078515470706457008162418662428528248364555385577746646237230875616607255713843945330089363598007831791174682682763721889515772156686374078350529887493819639090409614074759338049811431475054929538844343837940713398827914369936077847769751485792982275367635972382485402418969227406085134184881637047082609750293139451743656965682601819627606642521035840555920903848525029999806405553633483804953443697438196398045407351492973815649743021137899429995822445775332479802472456711456198521618231158100454796044615604514930903277643759926082822786562757991635948498394178485641616432479145008450070906537364361558527824213363908368290828457947629162582143919104732151473081353192903438042447945404898421822389658647913324506599260955383652255189158589680718728074705532887497491577566353913738501094916111804708386006291839267372285780627294497966564552927045228431385505191846994514960510546653976245733151553366845582996640248776674334203982598725666446967820415843864484829245256819182186649445642653964652253898256057384753846646353857463194842393037643152345873740806576727803833032260974161776739762915112644295540889257018105255125348384790626801563788383314240503074349690550615650396033115518747430565123744724918039612247803361590633974599531641146005834519834065596397549670084666857155663368945298406849500859066763833010488039686654592474194211851736726800858936475373926298533547153774344411878739683129357444524779621179189975986284079865205256594566476942890106937963631498851563843902063816039204665709801472407686951082148401596004693491490149618011668587574350940520988171304703542969234748384244173199995635412650935313139726706862931380458095571820586576155118268358766465392591834278717882856611329690374083358186201944047109501967537849442582006566082102912297557796118631956175789737761507236456872745909462330408046850496643279898558231782298253283952195659676299640658660974504513019880289238364968710799346535835431098760281432456443410028996707128586322107225751187669344851757743452699097189008350232710298713325998727170861115961537385718341690465728631358293458647576067990522285980731649097544314426519474623332666808309451420477983864291776082620013425636621056810212840096719064099123852034358723771320844260914701308465019114611272037382794217347929677917609396623974350804396036333562936910271064889179611278741661218595864461856602507094411051690322303447542937914848981056900179196256534679444338268500941159846583884883628775631094631669051206985387864530076376200121027993366587832018215110890265782369965144844044284509382319607143998619975815772075390629568535324668895631351387852619552816574685804688840103789526027909954392239627480807522363284311754834011702288390841391551424295849139388534109373137785005528453652008928430351036793585927517580166873636219286806607494277041727748332618725870483099164144846314086440081506309729789712267529396377728940879201533396817185774576721928030488710006372707952653465986785952970841824835094198952285685960578176035379570738521012947386217391188920903781138680725690349333404531968036700712949828183741520575411898959757364072696945794295720573038957131034857519389650601350033682215165343521502098846415796124705372370250036371413824800629967287439349341922520336187539081330618996207112779068277126494372989890861536986467799498328332099366748918218277312095076270967332380137234427236093761415527678246878643561626554547788571065995132657246069714927512940583612461243380266846409550185880433824636748236781953451547082920890261554441937683341707096303008491419717487184982905626101400270834978109114476889564873374266113262466902788876089554308152262206291904443856158064962321214223501340604323719389560381470232322052289657676390140473378374237566151275537438085194867703183977417309261771143879831730662778569323358497659868763985393906692896742140083695838399273757276555800382536872788840874055373217598653817803898146665738915264743097506008190402304629250064992414743261372006617250024530336978798488464323208335908114844527674081031117193155489445157196116192095250624111187382908649387561489199095953685462138982785047952436084167025520309209184646156953184100112879899141186932180536162659526501599509289223974350602101532347987693985358087734531578356180037633547423282947122757187693601694926167478521911087192226593453833963992551412579988457455132182108724653386083114453711432962424889000166921261072100526910922411535684916993674294009510787004242561458872288652588407807358611616188040169158958948501931123681139273450193090433863582914050792564433132133281085720460505942915983836356427673493749597693218867184717028306002459974170215639581741973469958693092469862949098701796018963357319039105311360258309422286507409168988974409250804926347173230110868165235668457907474467326326070451569893806567874260870853709305027721943151400917135238317081636404152088786980319827344149532690282011886076151045096655279521111292772025649809438852162536229335259184585884278930402893653246965225212168769073816950786134252748454272312139783031296437793099983503024101530935939098439974846283481373609204325647740740636322351954625324201032044637769157309592742016814910518522351336166183102910281587094602202753685763525970730161348985749392532793917798747881284437096854105211514833974489451089678472290399631352631789674235520833251900181290659186676023559339945763246897293212865396922643998261430100276180352625086712694119944930891818125688800059232275118659534028392910023454625760047018820711221093728783107174115435992722969501588791456282653871202838608520769172779581064124300720186084637947575079191370599429019597687106386731651529076775814363013534517711410220730464557369373928543238800318453933660002791616812900526491599402143144792714933298880694617389564428631040425435270284449070858253836724284566784120654258323295635837422607818049727082475550851439586582889240618508144349086453225704352263824926949797016612095616513986772150902038770392221961127126312278191997670957613564955936309267059047265461758485412775334781908613269531514132948104811175419138258474213816117073798124982790559380769791749036123734474754422188838700665813347284901020944166446452442461106990479602335611399994941824296538669738775957476760698785255231184768788170471541770933760584337710747993598687222922395157577105595950309153891020096122614154787442570114664117934262447853879210370996159234175031821225684395746265582483254755844916483073576556676472328444582821991007726252492632483178258663570026735508932727079963183721696210026638004506796330024851405384729594614350182804644016215927074828471593401458121529870187164576299986859873053842963546293188967369186019435375726594628888603355609244181597340205187355317970591034748039544604667016586860573856992941154458606788987824656867986005123964307643041277759524764092181327931485967427175177871498192305926304143259669363040187105596681289410367212525174714932573510112059610859505584912084377691176280736374413874804078633709016600586994712275345695437833834739523651632226893249034390537938971683581922007318492330325391851648699777545336797216247962232949691188548393907700468885060156925404395473025317640922540415177668032594385010861465597087663976997158892759713979068141554913221078341975931734046267394171957286782181694008414801345791983959500011558767564122812376593739155760375371885247788167467935406366785684095913386376307435837001750210565108025781827173076286099769586353809794117379062427457200270990407436898093310102919061381541173402614914735107838578966217444381900448799108978670986897580479434467508052788836207118944422196119916439197757226130651568713161680353176516398923974561101475422305431051919563894696439996113130075521893903979434581406042872742289449380507251811989376428505118601043665380820243440205399921173695312946739805851220189226608243989291727347221532371821934217034042312935740082649827309362616368559269015981768677489647005375187269462654262557187185299572580338470234462081968143084003988428940608657418253863640066344466256815813586497216805089495341412186603847821399161642314691736330970276131186830695083494415123795948041748455675442913442663808548862568756785347960345231043025591268530136241958726310817630026424208630676744860640638778100236706228057539762811821922703493574179356730353525585122182471525878370377171386236234175958095524352511654889354543475618297233166862808643760559981451632590122187171178531076091989922692526223934712849348342329019572495302756909741742436150324472102488385628558281097659864367258017372798265885822749602358421565915635428198789913996651752737450199767751624170997327962914873867138991859764534186198797839627661784414347050151123939660621535871370282806503639408633169998660963887717825939927053804544734116974812436349657696202602347398838874779010449895363317240631239388987069187860588141546320326190951248691547071604157836967641703910102529914053593427860932589561944241363604234220049614887887093512884508729145266184067269138161912100373847388950290394267984213720936391615085689942780512725134807313411744807464710460609677585869626251680594803593734151395078543177350269909523475930419801763874114388882045241249426945894302923071289029926990263265905694323495938911858939973353423455581141587121550537290296239038359313596118662735905462776217725891379453708986941393058131291080906676217964643247558300423764484590654510110312679134720238417064262219273826060706932809271868717915323185985133605157274500317104947513115950136794531560418538277865852336060299561742553694627608222958403368689142670540872898737116094268240215240568888296249467205674345095093708024902172025022465783967669880122797670666699662726811052389462723915033413455299158791711207471206844983781677787289600085533809324194518291397956295329013107047006936301531309003868631981066984013088361178894160001538143743700753580891569264069953110560569537497939911371909787164383099080055569528763036277370420168939206797745135671029855508776223508744759772621203958966638974563160946659831890868084486851096646232439394290941183258567961339156505490570758336346264223312887638516594604839157665274978429938705157875618357226877784943556386272043276370138336012908767463174043080981679552591549126792614280364523327424557981265063404368827412745377390179537692547452721086164592307779263471334270462794887799869306705954645843935263955165698917527340529903352243537394875589769293290940737258908744973213342086109735358539910575039350040645091074484107215907289605352588752262952866473853436195963499090641416771077593158229704336154976812436777480785007297596308089033011794212010287799981008579560930947146353788434760060756316184166686813270656394893215391842805545150958405410069639241372631383672255735597819383380421069944739335805194630278954258563073478094599038207533780655516919197115579933948390667833607068457330881165527206363595939824656952103648674462228817055024955151537688731475313556514686514874280223991023406184353353690389394461705149498286156743337735544059293196753786709580961825950510088017966298072039578605035871077338597642785551523994695937752464732618553301616376599037889572478352199534300166966996476683455651552563822387377491483174918259756511760426520270688607480059275758650122339573921593236795925906072460615334267991677216994663075895887473318373189920551125956977968297185568905393581894778094768183783820226529494397602615947632680821112953610478816765994423174122379312994950958260768633679650471693400537605150344669603701824374357857870134600649688548847733666412572673455570958288808743230110491638042603884654810494975852796580414890036866809339505463086211299271357599276085478675970135155026882727601277573849995932782566192634540795420170172978983619994594668614650871831556046951543679558376762500557065734598784052525918062887160310255770034010127347064742841667453583685959858340693560644082512232509206404348759723949932730570914147874033844555534445990968463631079614320469608228854731550724396140507921676939507129453281120350744112640226991958992098673369105503391476938434391862381136932302020007894473945679021496372778365130982360461928459401738116287038356416754596723880119775352284749902941981716654212098792978509946744639285894580677823345959620778155241056030863924119441496446307868309594197131727451158383795974779137919224028032844094852478417393032404768160413128873877541333041898447893053478360913834795229081240724387917142778402131569602501425246255627243120873260317366709855612458169763559697521849923327676077971482568293120351220460465210573499279121209123297162064251630388507444170632805692275605343346833380012307287166017054321397666801439166478460117881707475079143130804815399943714535242344200206686400755723452379132413605512630621253044714041412606647317848944288181897165303060647555408183830284121072419897456716988137373136261996393065450807314118208345185386044210351547743700107211684514869159086365495473690786940775925712915504397543786757551501841584401580360935027383894625399277817988067479419486988504740249697771434192583565216300418920393528498884699646127020742082020671405516189398446398405875209576885030186001638478570437739719499054760336759567899963417986602460707361840805527421095672524299960062632421837860591214966263832878913600053154273653795185272818553369902814619321671845492344965076055980510483053762829769454522805600071637572392282242694145542827012900927612801282866110884359006704857620080157552416109873897924885634199232715464307934143194910858826307359806015986858655860279451979088842171855527753765146416544380387629873916438593971837268043790133802113096437738299409598817499393872344445452138071420642357604642939198997192799707923462522328461102693730295966046382377945583451727649349030478871576334948047090626129158919089104472170824540336589404790430293097967347069257018644258421236337037743161583269130491897496911774360823486984552780982015169503650588307385657756941123066899393280844708184550466498917353895328965461213849274914200646203541199445403373731556492715690051375020138095506368445595891637943491335519225404844824595963705579426209435344417441340062756729986889620951184558032108867773304393881367979086394168793133690079047689184709682691629630568169469246877532501309666150435664307395270733580048651404738562850207653961573750306455265587886605337940689767642843834236271467520169370120778147123259302739768469433407688474206175445609410756875427726011057544588428569874803990561268832376455827656879128933908615019870382937411558530515224013169073943712160930378023905965680755184090337452580722225912646153746362651841412678393589904694524363566809793769806524575158404045688610464773415655078116789347654791235451114974271199021555150202638764501900829175356002669177604836451791156848815783080759425133986100330479809721047007352799083774909724147919068794933171970364998208270194902217606124180637844449811195435221547187135283607105059849562666312668069739933930833593842826657870465127351796839580196507131333046115366588603278582406276605507845442773665406160476150656521548933552930436865520232122776116945998432090674231251407177151463300950624234420333608815780976970487127747636163942416455932725959862634729139991244089130677890731006218273424507681478487506232347937988051904410808461218178535503458276976358531116253915719232043680466926238569526088086284195674045101771151824247996927183083614268986463100285062742935302519076602353593931352577299523006611553065096914150120539483433062389869063801719679864676778934269377546368789697537034432750980924848761057485316012442406668586922705814516464302294717210959410594368628189186526235739540721848398707857155771449393108669514933087933798933569113926027017735846733489044720327527637782960898751420920721831963107665731971364329179000590194573178381075159613247432749150304283654203355146701786500945019504826506923378630190338763678038242139865794459654658373029390805173599218872361381201396891359614640273991400230896919176600554574256005244216792727463009269039650932947480090680585366219589049100584383072856615693606667061657081904035734136839506361894418548491285715897697027377087097969940091977888168196441733830109464880112955320217694794224686783396390340982168175065955638994650796034487578992967714437948869649746985424508894523255621351182613358960347051703925860162973117961121844987428834253663743302581640190706627170106044446763236108845270949180755972610013312209939427786481963388970032867979490552848330085707202035275436665355312739799832888708285636672734380477426487713273997382403625990630690013478071514727517644450256170635979332433740250080807822252981721177865423452443749455467898109813639353952115038122176694247705367077538128267704381124856728404954540542245015174608417914800384365317605038999450179205351644879025908282818524243189469304233366820162049984003372097332924371073114348283113823330344951423544898282162173434501874143779882112269608463423472635840581781987636658166002523399905303283802140866884845657687921633631593862321617353953706143457290014933625727177608534885013457021756831707271651488593744931015700753770920939020243834643667517877544155098506729292457521761854689288328501294825146113252647026500293407595042867121857843465849065999310721291089354231252282317558739209510643955193727700508722557267342771658104248330156180982550300523003340669320835566594366220619955674850901427751040886259510984447046274314839699963712728760385968659417195278092234008229748019808490826707651727331210071651736807664376220532127464691053180134281557016031138378259613671837443755357161941997200477942819014769532488759179677183553429430704073407881168133267867697402794934240758723916956565727022008405754939768574139350698234875102578335840206488327510421999836388116189263809730887821386079836688329707513115758396784404183111581480646325001385689087203032836096795233214987362343166757130394716529604362459834012951623241149528229824083379256130601308578822901391300621093682224395759741739427089041761117593317696907889966598438011441158985056797805776691223863842982663412275758584869767759066241848981762079342046110472949728806056563386664229982363523694053214653694914054544974402704052005175682861586328254764329221366989606864205456274952494412271713197812921965515000365229495410963416791531134009867583414498469159020652510370381368544357449546655805089020143474234643432302469320047499244261624349138374292249009353740799850247352547430878444665857466388331415565514921450131240666258949363020656834837704190713433890409806782587069334307095269923071942239864307585819545380669434405970895794750590392934982997746763648062761848077825757081844291360995100720065695740901272088488243282653600246219004440125457119053438796481884156880747922814500914512211225903473209888661107995599297322448153560263076969253427544530433530690320321474017495486703173099101500049579107912087928461972420443448399596150195306527336548599920681778012644559255875628904067527126842117810901617837057835391653580356313614011241586815503556205624063243707971256800550600505110675839479804465196303029118484909374872437451772142982238670047539871881806441002644679595844373574678797087092493712538907584542142624325252792109379203641051975322195325060543279387933285535403564965568388951572920602674050426351886688217694035227180207315218015943452349841968339578475961938547834675345769321907336966534932803810889507505130306163036287806717209904909703733186363632422738298130317160516893983957179000623295643528171608854174435053498509631264020108742073269644648354823509053189187030995397541565794217097266546538625284728294569980835465434095581482562357786943705969551820497318754086441170898650416661348687175775962919984793070024753761850013061914218267152129605844846543663366003845911660749784685712132816244936343148447427140576426131257520628497989539128720978605890544683395462378213488131254981355295928037826179239113551012060949642538524578514571760272838756617004865149779230827469174354114831463286193020183243720396584880793894112004662728692203315007024086500611540494468734631866093480302195543392691260724755240855721477800200184277695644056958007222598652603083595771412724561046284072621653577905882748481543287233348025003920103100024464648492093059543317342653515464135435090955572252828403957393859046600721668215714911915441675473465811399914090083580039063691566797564912394186755598164796490093231830994583183021407511759352110743043761698115308680934477763110361238896428766474776543342271521245847224108881480751890982504093631394510428512880887379606864224360663873894428750819522154028306356365029214939444361549648634081716816623136672836741753039625887331618068881453065457568344236927553926542597281644335147823722700974536897431963115933633478247204048295317294784487533736706217544592437723571846971392422277201337980988128568040166590357011234755509079721748498548727445353736981944380000746438920128026890023044489822848028054354655560673624150145141906049517226027546926739270357297833198378731015918623370273027173717330571688814608994590305357559646938640096341515796688108742294640483534889532873805489169503139789241155784365718944203134673710298838237303924955367007739395394968028994129644433191983445099894222291327749467945458145589964940167031633751367399091512503135808924882867176371042980133373709436509873573402200102176139541706143798235157077978950490583059817469366778754567666073357589853465617782154230029305244758251977483472271916798043366616183884055829683518268430155959840298616905339257058991276497868752572275825949473108098467734988682299199718724033708978143480546191891817399476356901620629394415314504605725250459146690348605747320619751901279113001931386402910210838444097872625294520951507432522241913526520871375568912784209585229770943421133289416447386552545696153649429889168704567758346524484585547580879709717556553162248174982652938788691576360695186419543555704233266516103970733261253377823299475485156950203233158406543351840451269295119693663183136140176355867723023704881225675650590852413954195533947474269060284221772446509299310908927544551163006512589622138162019559881196866679733165744737606786974418206035101902338460761598142974640586906372397277720209235884384398801187282215263884508066841330251707647927706447708613366167040812149697740544682990167153690768647335886758156920453356127821619984115588960427832282465966292423349858295288854407611363012118166712633284977699690892681542901726208703451646022739386759559895612497942519677775476342664402447667253336136322553831781186610797278313495650461351334548589408578879175477647473602631789381900624009363737726799772071860556142744113220117730289800570512420722231620072410240511164419121561397171414407421755550692883243539983281379495112851875600118121823623772066397569702057122756385600244065954192937007184889602147194339255214077078112502900195724152717385962562126174488765634730953519654787261984181095844577002729855163710745322543571014352976167672085047682416669321547110509237925575465785499962394463609585291167173983810687694635851862852216108568994433025354338437695522240646200841476265764552488654171175554067610978416576597971878069617221471881076041297502927886649272049560114498179691397396693017111760884453966306055361920070220261425086610849609675635654997714776855774588515596864987123567476412237713502125920674757574446045264939039854886170777752065997275633095628925544278543976765419847287877258286768796109791525119869240222737338861661267080012682246468300771465580837740760436824059926790253242176692460404563352184207075455559238758786448251753846627129613947081302092981654704051103598289565157593325258312495168895226065792130207148994261091119298797684405856774171344837570532345495537538945508918854941788178127713282806030940827504227888204326250847444389889793723174109411625852395935828066126739512122876492600015280852816924664871727488263319163758012960339158490040012342871163762773679379458355896544952003512924390583973787172077262908051532872711086030015415195933248215394388428113743951996607525585563902312920284191705052044685494638711070308937866822519724292908888492497489957425309733946076751340229409847818142099550978461724205732459596151885490407389942509819768532021986441942205355082184574169156485494654170345746582033147862423011222711876509412662339510448722378236017057906626712314461527579784803554926028532175237478397976802457883142545882765018956374446977130340704924184349379912455978830594037466501178807035473951833850973062749204888832285946933503115316382537531195167717100383840168675427636207874855661227198475302715500367344433528702885733556707511740254470002955653202507271606596251614128324621001918814564680467108556795656381732979484920659352367745121250966801102372283799044974623800771604104866518087630027150120291505333482176071767849237719615427352582894362802183992885163489488568894564477846193944055389101679806988524627436321214786845359085413877511185941226729706692290807232574379614283410789177005800556289112322624575512591818063920516843548306245668302428769726172056178990744307510886798904101498077115334945832972664175240070035835866433748038652508201149806650136003615154519509263392860072683360860091540479696467513061357699480235643365337934784443820039424115607030001282342254517730305982385401892325835118931003802348117629323271074252737952953640133472491351817912786614581549169568743884729848783581774296702722684015011865488659707666618549538970654119148936320782859217723095008677189241231482687443664716365070751965281713286617733047150949537177464546562144474047776477071738077695759742356201046454657101273502300464956111055291155776377048528607548791348007287401106367472682971202310710938641833768040479975250676819536746060066784259760861867251054123689657533818037036952296194910650577416877595323199425429063623945449493562954267293911960802385887089993616615473434277033145754995038422827697033415139665318206144312746344656032309713384564885667380789666950931090402605330875072619935950054355176171915566030866996319187449310292520939411309163300535985693592328731649343225046341671048202748305400639657951209811049135717050311252267917790608122749995407056867945539002158528034684529072296426797252324694038617586060603587218880935485080645371125800918197759572875637693645106875736734384434513080821261306149665272776540687066324487315770878864560436318847458227468060516208979642360693920527734575527250759596154687315633513366675251410123947790206818923759609817663417764706568881700008168157413693163720238477403890862274023258947198526655560504831937989562233691775633378335150155437638982734887694721794950353184593488491020505212265158171300078761859184515460407258880982057427708223925893381251275679310949061011964995768879421627643481971710876183703807575934621425458277565576915984634968229740710961953720272647047968252750432880470327384216696860522745225345596131582120385538414110361543890073555290630124034991328223260772220610079738139461347830374083392777299946704034025794185261914232285171728720160820275604576396370271887963975381140012191196494951887977179106774354380446658698800687676038197652347038249966610876176754515691511771002410178208848006026521489728421351553560552760969958621074838570664457232541827478271082412718431463450085526214976400376546963897913242516432104408518324701554077331432606199026419599189509203319640672957737105064367171213010074355523722592999386478801405826593844576890515810790050271996476404707008041966868596190686059815075405388445993118928742156474025460645299318413735859569015814561560191153968712273092153829049783557577182159823811408762355232176428403380933804633436723454394743270735075364221026391953751023789054599635940206470776959709126853282330546232007522803157114609085744825260478834503405592174755191889845183766624144932908995310228704948352713772370730034491148170596657704132713761500030828287348641011830186545289230712633589461448344115837278829105152412185620654471216384199492333645608826858190633872329627111300174681294011285111906124983803897508826890066396589997162671968062376892775117573817228088059863543800120842438556788382318600101257505462034643445355288243557628638894420899585016389476911668477375671939274879736594328614260358812750590892170152072052436725324443666244058683738255038609436497243754515179521054458424646782894552163535400528735400447109872228882881260375439262835845811813701542807322969282983711422557209170021129541558371480575914753409345874993042814171080094237339274965307614685420519424794923382278406602800050190554862078741000109902606086965914238176479722455557898270114111103681718153759528065943942701226937544070111257104658948759853205271499642881926499869944244585098600321828398813268010426765663321832796971467376005201694837624125327711934259685318971133475989662850725657994917429130655927381186395533674392226006761047166006245026988529008121198482732192750587285111285161994136369118583960074178690407453712346546894337567886233976755454011524559499965009203314034532202450086097047099883930318251166182580216847825090300755094853840974648519616357142202368830790550467557384532047109352434457941329420025515701764964617375575194350407985475798111248531186952633659679350968536794361283809072937441206252100338210994711535112690486985192047944491064291575506266229695410942488661804760817710389214864702057172159159461925997233000773102592289631106478478740870033550918031900796273725011122597698700300328082068347094236431141510766629425999991743943728428251154019554167028181857670618424362348304977782122919425337072585567272319705445106067658129320152885103476431302230170942365556568617672700001498355492474998160393893364089083344184500625124077647752513685100094077141364328265100529336950579630903389585830067756134870996667168099971400407675913089153691494585319819665021970424407157852569890795546212588717836819825535935862275363200435876391518634720501168481072920537639921208359309599117504383346283898792504370907380421612296979182864151637925810098165895393909275191660320737011708980019311745746463975317847602688697880016987659765712464418492778277551063697168457472458330470257212890936679770588208463581937049635388451773983021702769760049669810546243241422158513539850841380736559726567862061913151756169050809186700448511440907692565916056787981120619110539591970100040156933913195782575023616892912070496841319639955320236648849659627261663592430228625247558585505800192708213784705588264505240451287998810169654655360437997663411153603715980363793220734842446232695519775981889153742366263928898661919715205400942742103796296034310335291396891615728293084143770661396854087562816244214319436336778052760152360135055084637591464253988858958738352909196828526795042184870327452918199098373184227590667485369904654891592341029407892274291506181529188349341037109191787322693729425664839937187701318284149382836963162120619096721806935033872670659190357325425125099641706110649956001974283640836856279289936895687408907034258859758875615970774411178875853082462207763212382577090841067116372524501359707762447340095823496873962434223265382860184518202205833949830660193057122165158521050776951540626653389320846794765890460139843575801221002137361762154189096739936687049617942636416057478063673469416703526320199901486961799961877302599491084831792471519393011723083493529814072045872701617401358260999588423933308631295513256584297467105884670841727110228736086587971473661862364159357173486750270799755117082524342856441393384484871610325568380353052096012728950205404774070262633199207887700013799256675363341740870527960850990046558009558856514667279028319592316119907915948397796692676597178171417139736272037374591167943269434673822679843883992771797515237536499926037751690190642820581097394959171873268403848506217259769488852030770352996511475271278973796541566206152926656235269982429359601703247574138745344610665720347004050319528556805728330004664951756861018077071429149201813436620090479977820280487891629325707236842764341441773007836020108586427432375940781350953119746919819455509433921611637593855490938881199457624428818301309250831145730785782556139078990409509028814028012141862716752965381208155897001103625379173424948125616405962895852438765317136974314209957823127079276824530025141487907810950408547516873318381489012716107820333614066991901969733424419122920232173770293897504280412254755359521611162935693952994440766009477641762844069150679913213500566505462783030438661206179643481764118369468966457957205716504792570712816876067553880163806385260325966104397790304936945721979494353885290760361066089355726044424897824113114112914745608638959780325362148577412418430802908162070551398977997534082180257826657925669060963277342957608958758534037170483434590776456456329050919831026016693730424298356265234995132361956203910149434936490018735749654182725067599844549781208233430990313193884402091020233434254654769059515676501174240924074676493532745109287224023873404196227929202565024707433307115577893705209319508759857420781702427990858885550837165504367941856597363077485385203890755081998464546740455153014627754369036131471539863996061419277355605029493606885909328642179076824148514902763548767525710589070891808108979241684008815931623689511738058528918995445822516720238113781551486417101632259625587056826117096292967353559719029385942503371511779178208486028941903689159809837196585322356165173604743907226493432559277946900227307889633286160185162359453123086135371482804638028387155807873245387919042424012268238472967485787544649340761752518887846048026595074650437641289954989555801490166689283249329171689980023177955871532040716682052744972508716231769905671566778025292488381357795202021276216395765356540027922011790215235084587567504961302592720265492525995877467789929066879587500721520893032073962108820610503616437897606611790765243701683621943152789853810012588633251158233831531735797904532670738114773832881305167186723438646089350139366180862705015947707809852127907927871660245846085337765045844412225469792808219264191149817305316086711045404531087391390812370505755085872213883842484335986357540221598660215703786998682061841481905051243487331021268985258521950087125380344608877679909550430842521516695877409040379134112557392846018096834993016095116689756369870172128401247804013537654035786825969395711545431964267576567338299742384062719439659906215151398092026794625256379675437218581787762630888770993654760555264683929020324169245329344268238968624653401604184130812429290138153387969428683744601679815630611611905168611032397076378633728177626152670679742582297189378263982535718126071146486933816329488625173434146446721812893654692046466000118521490448884115113752976108434045802665246960278506213424797237461596364331345427325932203738997800615742111930689246152765845605690365231377404111135627554558087510477907351279324616576751267144249544814281849086852761784211788931521350830868984999760530543820104564074927474536442561199116166473213208459105137525141373458858306314921870408286474773411692969682655518930285474992693075841315616636056758935763764414404348499329791966003036741591615319743551245177289754005148294998113689623388361084058908325582953964519868201895960393553458894339919441185423464125650122478381381288191899196929389989896479352847233135614853518445966425890554666004844007793094367048442018370332883344437885431814506998452987197829544621518727458402246902554526919006505634521033868680123008614419616291506671473394816935008526723717617342128639473345364050181373310543841080004004754107645316692953299698486825866623535353566525895936231714964491607715722293047969434374110887582308330000391454937426971624245387116660138692721450547069468675584021914917684221561758599106745101845613452706898509443455688515835698832505491699003800513450944806319048162285233109889426299957601845899473773829870488411194591485217265952917619130239158622425591854505666380128194666694468104424918744558817676147982647916293560772161036717825312030568303333937007444002594865766760857374224047220092855224087838276742210515278043440541026949160258677058552957178768185548766784189090052941271149607973700178083374068353172719791260083448268468163337776348550158147022374653499967975269752093109022642680471059954046914903809679264797947410039261950496516196499336342284448111031547393162657660132259389547244442094590726137220139677366041805913056844008413100042678500412215577828669495740718049776340089485128391066336910319631771140205532361795955065586644089065662619905141914965040162433776964938028350223977901814881642474286880446407810533415419490671754986951843634876005707921269290881155118948159550748516821533444253475528084353974434617402974605422178219202087264247024764608799138736060957957786499142769767711209108050573303570470454492188435853027031393572233880153727360239923115228438086213015406077611481686504417403050556580836949724832841452787253172434180271693114219612463605042660189555679763862035274493148956883548366447139127972040322495991042471865997113306828805385814343406749834011220910904948017641134774127602001509266107760293400358464498209745613880566199632613875599817967992718189777168980724496976922428465882727519985114094005999263144944103505487742825130996643393042272249627779279696715810793113889047375218964992416301125048396832510833794425636635785668210168766644746830888984645653976663717404618690349912238994534501535320239087580847789772068719821571437571338734421558364376076620084979426162351612645821424532179792461825775814278499886826947713518874162716629940297019714887185528647381633021822707420892289833529112662855787439662342832339784819223463979924062581177910109761467802958164169827223827249243560158506846254691386189246138930175801577873474272961823680368159442735237164379445692837794084343185920817677089627643273936040655286939913283411926142603998336303871687976267048881152951357564539728402003487020801121074571219671701743635264472182045213486307998602272329783634521911031646623774068447839707360901793687557693599116660930615008242177895192180532089269197176120890179673391525302200737453600688149841632694661542603739673392257790940992794639522019184684928393168665888066687583742027314162739669647619028263385593250053153678222365353862511021590155210154451172770484881629333022865939443266929109575264975977115505645378432198360541635543010874432931653128360042981576969921730409924363967255884804370523135990215881951211301912804485575818390787625164637459845038962358901849921285492080364604373419782520839518217539495287919020140461533464807206514781934252163681248339659327056109846785944575852945923598284098339107540291707487850018040425821578439499553052993352073317108368642989199085305919609131999157108320429291495382950689164774580660593069235912156465804088722178138117069425312537855045342578119697175966286813824222253817080146842152743254920816499631276731177008273120337685835565857041043720193041482599260715881007448983185314040880644553974687687803345368020233442113496066815772494777960058408136920977731377189444690634371677038312072869966562094181721598881612692266226209593681760550950003776966333792700557906540346805513057448869220475274386702301952612186165484848562148468991112297094967170243024490062074594093405768127065905301376243132805593653990142668173962138479430792202154293852327994910795623669918195727065775744942091612358635256209697117375852274477869801183950225815752754784519476701535264649578850262892890470442009638071140932107757513351441219550511985535606488107824783824395003327856976613255232165857898101073234417887212564465443241597850539823365281311576519733690772892939562150554857037729779200392538937345388447176721955575120505887509128834477158045362133360639604479513785083393487109360085441253774642472976884302848112691833861954342556684684800490905762328107725070248691698241259326976327226190699663758175873787145421534458579912042928597494295577646738174170864284227408803639958870599717543978548225988012022101220584487543022225300510485172125488917226705238508316387173148258649366801929299636183223491518207056709362740879539783179878161121881669977178978739441434342703580450094589109647563053932767986539860955131966925387478462579764170487398917808805987386238758935626412214972487160876981951005434510841876601412892802140529488338027032646588102977336887457264443236125502021460980459910043243235406185031568747268236526620634795183042869190267646786438567442605072000297167792671443534794610874018761512736557482847476367098689566420070002407245700890437566858769616492483443853460830432265898264266342184579744308877606126442757433402097409223592963371746564073690364278572571717357669849984007322383764789395418231658800092104142311581371491098843324477283004379580296028221523550080216407490576319758730173320328659957688831521602502405023679096796628351367748172217967381988369382407545406623425638815591058785423393509151833307880906661376246344038874862195620465304671113841632026008471049740305433778713568131489827290883203724357232918052384400325111694323562953492486482398092945343447388850489344657192960009727369960902892461094458836753653469152683710103236229570108071358158749275244317810641055558696003577691258169580680667066004189715628591357653337581697630796862489599244093503793452973249380016911810588355284882931582663924145325390502198093763833460917723173019272406247183077590567412895777016675842531252517634532969673811151697581730214028440973918778930630829624237321737936449621671973832166393575585030383047337272257134284419363698044192477104015287819846868042861405918014676134418528208427341604875592045756977276132585277423558452682739925303827768060086456861492869093418504169819599839287172749133468542657079767130914125222432597417513270472498604236053178801526659968088302004478006300477205974741615997485779438458759651449652541665744466501917410440263523802432732637609356232927412877883413362435526031466851710730105682296139410830030159689028613157947380047563297206385938697307455551829144833180919251302300454125779044311617102024441135005311705620345175785958188543007604147162711600806221171380753529845452556234398386083118157087419660955198199144048165681917581768375900870225014394918982726860540888502768474405245234518880355600137340650403346389220746266370202156176924457285927572750699277986527189721740050797596181998519232266746006062040123565053259389733247894311410726163467518019373543789045651406998635252409248271052584868134240668804974009305325826095178092050742508671926811133758312289826453615335601463193302589033575412564552437033255374178310376237550342623929412271262436198397867214550878584668302985365732540276133806835848408640089758293161206126949902388796273156392300405021905126909965666387566032573268691493760643106812687631413875788932883181782231445981809198228922279395649913157452174512559085474549106217958423406352592690088561423611939710386758969733724843996511648422491001909634064583437051883534085474936897983598254223462851991889269381209719877844522824199944101823533984721787777957019775021490825635319600816514202301336336125077647904342231918281997500001497431391920546065737344712663772142605225205069555156415983646159935158036260745937018200124678842590862945643361971320609953602101913319575708196936286099136011248839510529668587914133260980655701624488238679235998689408518696282630122343382981669221868885953456598676183278462435265134590013101605191492523407275677523462448698839584931283633631426718387248572966090551106676158746492849363288056711011783105596805931609884252940312143531362855781626396914837269147062420034121119302058729791963618895503463824339849442547935227702395809722041096736978015324920649447797384320860213047895328416574113319944684431737114706664985436009932316468763353773094415142942602451577360453828933248568210397105338034243696056925762730232649705596627314815771047462830488328145575039311707872595522960181640852727128210952422762898225216649007069063984222048943094271853503183886336769161421677801684538252771973414239522463944861080243876869833442254616572972625950306187610787996729612010569219663041066942832061713438086020696911041070051546648742579132074433538656936471726080043273350304831535335958598883455757849141842464150197223024667725708141991958638357172073543667228889597078215723907198078820191429144709959045521224737129179618739354593666159486854984406396718332886556021472482756935009919289986254788587941725876108350374680126991203703149026015663521828618916955776055390541512828537767599368550872275575452009165972576575037464361159889624028727375832036407512826285844091468808984777493732981722959743483723888883720346411731552248726154958564025363428376978762187252751282803319264643589069597203353992446146119926891945974431913662658927116074743380856229494414828333192242155953106612627671514796011182224648819178949164289295741859191376177789639295937801233523057221372532348460116890777458250165913697139343914218868034542763239912580689186662308439783555014443946065623032672422653193933032023749086476413859122555384906312053274865151289341714852631426548872519029344010783973505868224165361543522835721684018535659930682902009133383838395464924854965567309085135139241553534111379354746306202094506160798203789545108828701307591358086970798976330225858335597744891970670036634413465084483000676117370256508243775979075450286007011029048646562268439153999147276739786827330177179767865441844539528209227508856556136022875497671989170837432160213737508659533651435068949708034402945751664020097561547538714320064413891813009010134091181245827107640239978753526128066432801000336382509615691569518491689075680970150465834226299559335542296543977028454282340587643061269631731347864842627549977313877211099977648389671805489811132324333633570645891076218638951651069774040326902089926074878460762947172692120712345646404788351835875005469957392328617829832832874859466219994689950694843083232797477145745306303212467617171827703811480937304013001090392201288305112640242310409413402404601509992508059697756479409748158594603163268891687450025622727042652292061273002737478140198269202146129988818681565548268451016251176000391523454035266659507887769049390745787704101519333782536113683771392107725654749110971204558409270307015737735142758772650032453958819688958189233162335537546915672742712305346430995951981288049998116049024781796939744049338612119792290627006093337635534560461432126617816405137843862632158409457463873325023849733408398903893918715149907912979118095434566424303656032246162867177088686324901565654102909913378416360670184976488443743917134993225450716917886015003708623879143286056480524734333046847815079471879867743238065674530761025875417103583357848855277437368920003464242717421062059557410956277976778257184370429346611371326297348761796709542144472857272973889207755739704918992345262625915717351440195024544978760787450599516951597315818813331806606252488791704499949476701566848116817538706499574005605381550229655818680045198386471648285416960941053920627730319330442601343355580979353317069416178356141407999309448887694478821313111933629078948145051385343962915582874014554234587980661018387238237640087876755976146914176638031507344654034720946298485752479107871004202278166856500666727374371200413748289227619550765117032610092690295649952436635504045797946387812811062085059164203089448001782922214524602593261866539649690394731972815780211325416761644280142614628263384569516790837011014660221336167981733979969038125498604249098596141969237699784105739999858081588009718489493474235023004702502958986582024604528419327586268722862512465593450910209186301631685577857849210803390132343691844994790501172287560839589491622979813861797588769946474770460604340492485471405902432565986983461107862763480269235805646696653020308577832614136817958742402161713578109372335686229804541402203586703493443402810031744441403195369766320053819035937352293264264140499383834046085367261890755884614675560266062054883950386110293448548602206164779359804974226304086118332429862469586577466837897544105218032033346053030434131240882565524515084768070496093342549909813303706902533379858634423225148570224646450632609978553590004488415657021755537737416242301122148941767967531448717539806478585636836213368552048283618838612983274540264640070769354972011265184559044097813466697662300424767488768858543278706383605439053650117701628058682917668105873878743975985057449528247800399957798569804985592716097330810239864631854369553685084900969974473636734984139345273032190298115707732395462659750805096900883704055758595044974041335315656472704325623326648655358220690324400228057646954603817829628827042699569543110497300898683596470354643868365480423555687329382968054138236101942049925693307721265672593529774520258620811684863425939661262650418206340221882417826154387284818348207668700724030493010452648044530135009507196656612583684540537809049259758390436654774865496942650558652379867733879391694347935130477936864742684625387217893228621143519078130897353187403882270072986905622648372991744865984195994959553177480473258998016240758571382675568561592324470346887138013212245823998631207203841137194467201319399161240265673178151020908272234848146993672245402105257000302365070759702595197552625846219127048201769340415173793851955792220891960111052976120622610676163653076958003209903967569270325513878039742616339578593821841105163597580106408740956949787209824455369956247912888574944390332790698343182207034075081448348481697023164834518035387768236882457873377635808267475978002377647329146444846562346269636703387807168570276591904540482265714394846293912857731647861265766107839559705885786360683436090504229426733521007495878671453576075797702854862063013620024716701297803342515384662454971352122340458787008863012369074319811081129062336413040245361291746359587827878153332439871246218302287501031442867036313709929123107267209078983867871449382651420314376052845939004251429588760368804644843262680443841320946571120110335051037357605224483330591014256595553048513698282204924564428919277661347412175067480247059671826935018276331238328191649240659688629719724524805777463666332086994677461053867684485556475706350310612050575713622753551719667291218753578803487231565572715824019396480970868320542166667307205025188251400016609404387504159701134406652102438581850843217369956686126756344234522652787260525539490292730225447809331471865419270099509789216668892354057205966198373064784369190238482404774749336762889491711095646220293886877890267092159983605458816389428995151338464976193747468377534364321090223079621682159034945939307917127286266211841572022868048689222216049460301489026416050567726433136564320796319548874537031171930574185709727388009332299665212127639889507346504307412118831608907368976774044844337900009477477954806587305357224756234449832471479947458614908102589728752911878479534617656414373324365155866301257443078778478807503613964624174470417818096926336847936638789032170510112292029081015418757248108394223842178120357230052344521468015031093724688445829366720936423935372537362362062511208537156261895415891640341487257007486231536526806592512899070296517258589600314218089862605188679076517502484319978757548332688864734257485894604796472939963183305579145734529924401009257432986582174671505624037205791358067616831157938867278742375687983445983146591619882377274348789538540612475181304277472179354481480797813553300141299334446929424004495092171415733535446182707529354637501334964126570635670995814222020397774405604130527155184186002932031093020344904419536905082349697443121062072338285867244884095583329208241411782832169855148734153357305076637400897148125687932907748097973186700824652144022490340857224085450498768719771856323745650061510593487698513432914745660454499985095499026054247203547069764369002563109442184248967006729707136146205030348142775144960046310102507354296569526130489573114813069357011553609371043049979414781508344872842159832581764424476168774600616468190843383355494897876624871450360938972724896850346519407908895082821578579829133313662996772300319689413509277296160007360252737874999849033416213736220282213833306691964578636519083380224885942586716380975652222316463332079869503725920356188675041517150754959561554805248641878702778569399375726097461837154046959614634167272038482385183546886246934322411321551628559523591889338482858607681146543694163920091289175036921821614092173142835748397476241085799846066259177329731451016472171805857240428840027945550748324819960966352885417287036295354178422806357153587023663207489469665203918951155771823824834655960027532017799044707730460246965417644328645844631344040243001522531268357698216511118146458209655045499312953866644296801922297663662018230727280280232489323727549462012436551069074170413984166133371669849130035125650859858006089948080870350434616196342935288379745785282799297451161736542649747408147370857510573855331508451022767201957767788361604269867518293830267839418486467730396571401578877873277311375863805109789970674466436538518530185533568007573410742670085321764951684786990000375625067558222840736398563370624856871907545929776149127376340413423050993576272007805552760949425352583538225935710126530179218419085564165213608788817868056965165082163788945803156215315738229558610709360778192803104074541100822514211154078816348350519789523339191680158152596094773511751940079318191719149400156152000193130502130265893412666965697290284874689571787047872494735866803939692020305704050866896982078076898120254435501080124771900251700250134739934940115683375588924526642915428555298825706533565556061127517851527729799667804477943582183308608961262231867449302002333636631120388620852435228179199257369067385706689962995492430957278922538054541104834359249299142239186345937726453183604671306899487033537721668252348619029015529414086992249750477416164777138729415656242396427312540812039366876283102076390658833636795267357854293635008649253961201128939734301975519157698052685738770566020883872488786016667791195251529754673828088744471463439992608801164177677516650316845555935341590654745387679674321693514851268508517124716908056500339591677212859767181551572920903238915969686681724770618498134992022894873440944399877969478295314934801245095506041370711814210671802615465649771845864524167581192054263553621214225987063237733012313415253343567003993794119243766349550814552243128585980834307301689618000058106665785624388462942610074202102698410716085319847709604876384033635186633212324899869486660745027190750240415495856400824046845300764574464312984721578368043329807204983132610626346419487414541499603563799775891711369387989397082144180809645098509063653601635531058917570626796962206098718589363927114967291194050461393623894162016692083390684914528940359903120513479131195020247770798282322272088126259798356042416745586924854415978265825077897295856016879461313334071527123385168099211764477036601394585754441177261540414674654318864988122959201967552837651683781309278238643404714585271204382941600928210817462038318585338170218777875249600047773652656353552668549816772725218609580344423923414610739672298143243146145594206048560541070905113642122551387064088158677686434868899309467951840263276017194598286943858444000592091188489679027934784237237758836649935420702381916497661602548633643403512439381680721584903988058973531730363890726492194119548639168271180158547669651971923607632426188864128886615338995408875599043050838774870726343996145695467256344764203035672948932872277132609454009944628701704519074619378708209188765213512607434754807867570307726341926603360001358067626309513842998603115190650180275653025675505052217171260939517122542047579329881575575553325961896608597241985357371057325018224621267281094116919510057967681106144358993617766294823279683856261933923280347877511126763431610986073070415942362768966345093871513628573736477317697171547266368491159071664048214698534824317612811268457322514633430135880912437039681703643043296390580000254785413642430782025487997234867569695528215110697645478515226987498566853764521725409933340045533504962207038565972133033326228496947014663926270543364802496506416189135918252222360815268397782538129440960507861496676419335347451740485003313752676476256247247247105707031143598813154310096305595264478063960190052517359922444681128932546373213120933070432323740001070811022042065591190381338901888219051972578401297561283747404101884384819524156193808553715041357016162255575932748215961571486158012944814566820852437269606126766929815548229777724724197218014767933184197580857701875047204101134375300101228323436786684084035493397551780266404242363931758065827021552060530201285995773082773610266279885971324512635336119343370099158537715526721224059245247777605471385498051496905436763644541215722878246426889669663590960570971010152180836289638756319685060844057308692078295977517074283108078058007407581349658162995121347690177029457484045465133888352522579826162406061582322414391967001768547285693085020349840423236620830587475288642776568463110597532829507063247308905397105379861412375971967396005260277762570641928243493693265138670875312320147322702575850878761812592229556863643778961779701311495088291077773581728400117651958403420658465654306332348884818284055185619436771078278873742898296369669736619180053662983334264184322906746662533230208879699854295653446410027710488138028808757680936934945842345519669940209415928785206031805469193452251429013667801857730181709787696866595025631239357101144502542158101193845503220713617958230283652219979445880813761617376382189964306842520446141516638228649323805844323919188322010467738857118825876610930950505118812872676803237473569253526745805942161664814771790567978775951984655791141349892710817859649727203176126754488621338302331451523774053723801508231328631503084265303032451801492469276322529492106152034135052759675494908524545285462612534498123674054195683409160881799801699234703734238899191904873198934853400782053998176168098073640293367291827248876221644965477327980289280454100159493634471856480262688104618181794904433662265293884391848212314689643975000904974201239297019648000695310952477206170191201246131848308354004397871557068131171370397886705785948659009472652803208145933273651270121822760546913127082516485463218162516650382521361195720055099348914472297481120297169359944350837190877429285509346311572673022014762996998346478333699131639874380296562909914433095984347410984203290533652096451750351058890313837353776370856348957562534221312000660298528537303203198639204425637822121101819434442472089784816344069672622576943282501530916716494735333479682981909182474377208329205673654766789774811236079831032412493807324401757405943747971651678266704542848637346490850755974307509716896502675852315862538857971459366891901390994902381128838327579847933637270274409456779529020963379542322689252918601138261939634663695165823629543797974764372689559801008721241179095016808517706213783475078523209156171558704448813263699693720573524382196112134708216906525112858210089881485320102609152580405051961147846274091218267637460405337651996613326282519592538923214405888121161079355865103173159319499430203536269247649254806398819875212719927330820433788738395809862002571502228316143503838617086899795099170944920101949301898920503346221301998561795268944988590809657975759158292885381867648859480920120254453599669123228482498516816900446434683748078923358351316927511181806764812889768720800271983304288776149578398813438984395047561051685658254273091061579177700544758943731313895760399865318686811652236628361386249944114787546089954922446031154356304238482693448467402340595655499568950523884265238652473061770871060055290271889585959451570433129852654694892274301436703699492461495400341617625672918968013183850720447847500616505268671095208360068249932452624142802356529950893349935899261586472500636729774001686882065464879931647373290783135617585770376915382129959333361967331672894954376087678988203914354236889776495616713360935141489236707943544474730669343493421324034978425174908861800114652955613488311508546529182058308134838792599723320018781290062498040882434620759986280227440822259154087236785867072836731206797892836759678120912689791289643036234243693405364481667733726096569544542250591965201618315796120698120922857662554965713818405659833100090494985155073600298226294596260328374810965191813059539841749490120659809139291765428572707524734730667559108271314850117988278648906518612111453942681649802232222666600555968818296518641634160414215623126961477404721137724592005961729010107814347165384634204587834773305888970760398224675812726875447550757977941711413324209895648320306591008760585805090289496964484705611740795829502758476338912567791880172151709935946610713503483498249095726486209648249170349298272555913987446046530296538916766301558436394126964550626048188652254663814028033253355900079918787758865794095580110083982576248471861146550275138980754917223169159790036448056080096477779770173154718776668296571712988649671807235878473436196450506858878223888087278608382989095139226799621450739518432909275748712498323981641355490042446987100209734196152736372846753785087285494478054306716563798124942251409554965298208357872627000488900714956912120344191629287022249113766790912178095395107486157238741523464439238255604132825707010780928065402538094210195632264806857117212886729946972951607286029823337355986558889787944247629464619936601978828275680379009118164908634321773965090545723860662960084650102476409343914443283661085588646878817353767733894019692559646508463606173007399756328465379439041075846520328176606321047739891868206013364479352195913486212957248262147933829814068219378004462149616384755625890874997477450739169487447357328400044855218373248927980781243524609027032846111813568117224968641626763109283064399324813084258284578761789335362476448927962364185626139717201035078999209990915272026484737557591820839473110515460639985510062786869155802066125222669727251643201771318756109691744842531031903693585893946838825880927903328818476086416347735905568562938119356132637521893631917359366338069316772348283797784985810699770552982134708131319387471189028299662600615572422239303810555767307540013634229929742582893929295583456349787618507090635387302120729709712640140008641703784058242201448283958796526020183808165400809710351632314448798714328627613437352455650386557020291170603396903239251761035277928653266889631080773423328403186762217479008687733006273828569528873150010809441487907921357143427293225885062440539580538676448392845110554092588965979062803189098129591310513566081974069028708213320861449034682247398585167074731279081979215141559619614928037772633139808046655896675848973271140609432867034391104223699787326052425844975325745874566248945394662698462413667332553203250944197272409209150188069573602682851025028706579239511399706731993892521213260777793638886922763164649334167153829487871703699517051771931466815692374273872646614322222036194093829151497527126619957497784963070478684235906257422627553399214169039614105893928763728062255923183087564431570180951603433705328346002576553637892334090831592690213224206915979906707238435985725257250304229777875967343766088811601761809987562945075932041329348137799463589129938932596849736845457339763816326679816621882949901713548537489053365690579292163520286891393739672169335602808124707297681965903617438462743091066143873820443113072479057681132382608990258107446210277767004240741223608859052839752305535145702179556199911439719857980174090736493269447093150184296525129268087199515365863259367241798062579563091557352235317473500296252354039349318520434607171568283383291567387995643757853629482905929845530626667233456256144244324242325881189308528254153148915758615623066913676651152634299276473838701670567198342758204154259041997540203939980096724819555416309195081936181933917752674415670387149960917802180885119526075884177920985399688804750415422959131196011008207791648489682684479201156669566706684410436016359254113087780196992057961849335625854148218047566962583982356734431278609089207367312028885979344397136944057928786359439752880554955771956999245826447368314340579644388802243812327839797878474756908150321466028408257156655906567685919987856199069589317479538783572852548826529558495454443127009033773251891347863208073897288751022574597706772939365028812392412856901447604724303943236718958274661754213883257952628647404918932348639110519542587028007296043622104672305598518054635894591768303202607319271962293592981992631161788026055890464490994940219056675145403921484848691099735728995331390912582517426976198834968834336196317966885828867685226222051583945311386219863054364511496584387785705923967415706734390538145952907170320889860853930244697331002119416143514152057298475488575759900293196015032072871115348667132829641499296038304789420364933639303396783774684893919315358258033340774702695851601412038620259441712903458444686618837200330627434098438512687722779807362894682819106965887452709255372766458018915317958433115493442992707717255420008668584133421164066544066714910455670518974667566131419020786969465868257325300562904085051502698899847091382537614944525647403150043453751539091857427754711798881759595117408919228534948377850290202825695610976674665354746998468957839066517906946073453083482560299225309388863420399061074215556974886214436469604230315635332627662500806775230407688508965892480747854303137948061200875825141427671953290799111645558985289137700273347940680145944512777993889636126921399587451732837364296026668944793431108161381341941710312246850860930305438006396820188343007913990650344815469087650829990877298161539736699506869911175014607159375838178142013552814865136977930439722869518950606484298878699998909606720802927259134359839963462404360816590051361185290181661077952402528990938432763671734277143566010007119721223033451011074700439411642516518452354622867757714138577696215981589088455659946575640364960556734197397169679187299659321105962310648332823068196627387713451392434007417841366734278739668751297275441298107688443990654285699898545535479881914092049432091025805496697217179103814462005207779782448299188045395253212767493843363965150454793227323565108356161480492639710221625539927152773186877777037045071527297844062368430238944510193707715252530589350202018318273943152424242938322545645109172304457617246810549770447750917951103019557511324483195127537177680043288824024458859060705608856902881377099096787891250181402292915688846704638124433189028024461808720892112643727292438431935955964796246523641340163893924562195918016851203918268978686178369019864597125115812234790881795073297552540164530076367518171574386010725140169904117753549518838386171767499455676218433045603788338687687993775175374258906281422408925537343457958059682861228545044430416838759091690556876475815625334244046328852669685403948123280292529249552029497862738304650661332673514884991679364191912564614193554608970865363939745097915489033596768913749836886195641392597461857137287717851119970979329777988900551091934815343929800609424901858826024148429684166963428987601224365226493850582348409193118658554857776909363951525761582817826043450640631450908038878075232418207004536808351609357026172080951721110208996508963742011088544518839187738497987342735249971845030317255742502086679259249775837077960883651233432225648170441133393202576157215573912813615129091049096092000475884966600695438339863016892933857781063196860781331726565125845920815619604090292570773646442970782878753583764989199056728430770894777468513637680923736604832974445938073440249003327465485490716474851501372867393458098783462366227985091710958454610113343325605315371969588060343720073007922817106008401641866809169947878086964279097438898443378599444945079773986828803707109541169048052283562926912251573608683376044855506030534133668505954081551092885136272156549001541167373112961862326917349772509981065848859039806799004549069810634373146716554795956037095458218477643076100344133853717061397466818465662556532484025046883384370226737281451347981597383100946196494452918007184200441139891524604301231895419251323694100103115032568781841995567012001173240159844387083294229630045048651547084770480130563398089886421929768545223042475904889940969633371233525306862854243463514857769794438029255101032361166211435763805066516079571978981864431762189656833713951051286247561685307380218816914426980326357371025667119889819442633388656500073280398307295259008106380274071336397634797264129255299961680888529436883285131472066165629745717236607372507112663726596434756485591147957882693762588233941964078743347210231193803964337469110499269517897910526624850776642130213646086933487225083092324620557961467118256627495104524922295721741801006105933249139922796054099395926787475521341992199624123928580094091226773383202001937975742475618949429154132014163246521437906604453069029223734283277687114578318373298058368156151396937401180822427254043739239388596881982235026297581434750631710722250999437506627897143889779950589694190711060006898209219329423381428551634216585079470052515215841256789098492016081971418085662685269941740472620970743927722677215106491820707105066173848418225024517041167040450282449680335624318148295165115799516557447680915588412325161740118876038301834110524048986106031072117205351321229583815731624488597417256517200519913991982459662536725523241225239916521722436491934726108476714773751942490169806649703313589429277208719842659021682975558086479557293495304705879392680686160968101140080876678339094161484247663291782704219890857895623873769072772248704767197479519348941383400941934004201477946097608033716918953342767775485867050097424897593085819061378102817696094266947018508491841818252922793859019593004158726568985449764818492582544955777192507790830095036829376855533130102239634365743230121136975847455314498339598579088894218168691926125089587879732281226870282336591255185434269337632039445570601726038903072398044123504823322714673879168977025070622708463671134671194711028014799994384693887928961158503610702566904266790020896822500294043210475610728660883763076501229666584670151033966360719894935134037743369019867653646666948628176990583251267822923403498978297516369393820430716460423163237749826080345389746687369362918694037235111334190195238043625041864091173127940976593864401498593975034329247920678030115664151489874843726057712526929183675991313561194452187277176391592979624634634040861593936137837447447714331461964333690679573715633359658945238408737494455231515324410050132604280533781678633844315900548729761527549564250764753855310013161175983673237502831408594785177352554636796451997260522025835682577269943418811035199352558614268984704206109148407251993314679815261410456713842001083850480110214626251334051486704603114918703593740615362215455207490609847886323200417562767646119566852882003110368526335831666155569034625545471909959850922905496414915287346188706148156541435838599844830511667478282933354024349347509067371746225150871820452786087017956383527406674962844659598696175015038570964692055344344780175081946909539718103705299048035339317692684698899273787228898002118914824987579017775175660045064803222873377317179184621431560055831134464056934725610058860930952265151351989914821520453697435019435576632979146161356195303784331975993160060436108252783799766032646169867464391625078808506118507796182932084137066685151389334123770699269503181899580230250271496547324706748465037224753527761498467888634565930612091012713373712300783368230170472593484738644936656869437994292823420465286588436638698738029056585952754852543477537023911548994723026529488795077264386728076925101025398350257558422315379728514792819541722745059422009890143965132357024431697809692252487107581302113570847728009136186213304052931634273719476729196539411620341228660945495864990257491262106046981635593622967628305308136384787485537091902184176051036026806201270641690659597792707895466779076450812934435100090873500215463110733590461715017611948909982370210204727199569979568783903769349091053573246017653047004961405698708015187530288900913762499074313665230751523701139935977822631025528462410732030688647321244106121038625268133714920256243954781994885353319957919086351724921582162938920998628058442019380896615476008175356132341527206923889929003573859262922552519546346318211282066311786903320281960400058546224394355235406399338802246658122647793411909076462547192289110972834766700758926543421805292648469338091071573148068070204063202593026560447354658404144534575352028700051774815990579766718596796555836806237861445662453590334899333051968248623663819910656024747681683424779341529892660734840899298491583727141089982385979785617343493636821712795874125223051450638577089880192585743201052886139237130376390649576937953065383186214979441118550274153340575145898653635386685441505181042821505707700536029970974087340859838963906782343430083099540265215977098448642232719662945737602096849771424085186557847775530518699019292482852552353900845385042685177948651632450143204608420289909188421020236147995732827303001356512874920030566388921596696061375108116104170168617192870719000832173631793828726941987055626546110264067240526118544234103667094388703309086462923292221078815847143409124062121910501379391942016207034693590013336162447437309898747521214924870013242857672985037805872639686702146283029045040487231350438964585678712950041659776742003452493445842081435313227875760560623041423240546074330140828017097193478320041801325034465878730500930807393722054345786652256327257011206506496129775567015214380020505483018658426573452920043639326884096784217176222171393822343484083595069562045521287171230615363544908824454467592129650208993571137948151902328661392182910557254748269511271850813489622882513723631491275512513260108701725571028099166775016888673997208712032555177578247045657070226582564375555292663006170728639081151211359239412842861600197033229125948283066411684570472373541926341477339712589824618589975226154886593828648913754594862693956708696688407770745335527252998489058877298704501766267758274307548703879951036461318552966719450893147154010663965599686067710777444810296263041502024998893852817492115313797079031194686741235070658342705942919951167302087103495440281602332059779185089698339993347338391075137776313263986959488124672935130015642855934263704878109894493337668403978972121317400436586419872060588656656886205965038756554038205274734532873993410359061105891000087644416125142871256443766554989106500298351468320074564451232580544154630978803167341962330954074049320249874420191568245431925057770790189254000384114922857390932963667461823583593855196475171326126009156592285430203100486911891566712863531619543585369857657920444147395171489868712177142647441083080712039707145144971651466627304774183957091655164186910175970122961969040257084703976602072343110130055471507241356902987279615089207677534577455504203448422400200147581913660085098988865752038574163173192999948982408553017462555243969862260947715037329410912510585026035033881539035827925741071015958113738320224615398151954846342423607041714918291611738278894691082813498794464474415943935727733870938190694472441941684556006944571858355840107506326177131118930526661074655461663137699937982239310672120145661005097792787079935326039501823148541994014346496472256874672570458825322453287456763986132152561666898324977198554987810508500091916626466509482982581053509266820009850733183727229508982274641514190540947093621462642175005729874711237531179909213643589120095317139660702554117480641903736782746979985136534497202364119078201320273930462682557940749591968259956450896382557700882175235357143065609728049873788669484037021673879754865594899024606144672730177082466035975365481428937691078827043583359224705893938378491078426411387346862049036934431727777151302661111373411365955960962589806891204079365641241512758497266073988028871169064508852796336199640954269131519832470573697184369230241129064547104991308963144838370463364965047114747953585537818501225582211721799104979806108886760603669807627778555283942572305065076393331486091933803455756107825787436877003126761104752454395133234889159501359611593328142039053826658162349572166834685782470756683007322453684317927235321939012264032188928186804804226142312912212056818061119353994605316029312025355168472914983732890868299093894511240327735768685516244169910880474165370787382327041624818965572499984383371723893832797449546104006257027099809794245428396437421130645759894202485885391348203459402667872505790919700065579256915269188483151269915335006062399673234312546233143248162142953807302983037188089253274920896697061120051955788537557307037463971941276651680060596050166089057636094546264820659635797901562234995909874141495104987899730437129860455456245106984793453319151556499961911762411039071801820400483743053370878455954577431946809201230769255310783223888286529185137707758352788066700219714258133609881328738994518052212671894616653849538208973980829840435344215409677631258579148941042503490500300976995754013432210226253078786170040999773438826505866942966230430560881034966655042709290407524984751723069755869907578819966985246346045649957382634607456474820575878939130795670080341170059338473210333903522910529659232464996119902123047002086591584234005637840645280984742674738157151960305296949716318816423137784160745645513996922869683224355241712624267194960776295599165103702840402601734563677468947467179148759965793641082340060873344855822450342631156955320848591665659468184199551354081500595956839469084436432832658331601576424284367690407923379514109627586313024857729850029908876400199361777845846527608108875545138591988015608988967952335669017243846392916543556211328874908903222395710832588840930164947170165505018044183566747696148606224596224496258190796444437523909073723405985278660053105980706478709669790546600096887667613965300260404654379638359332038712359114158723737786856424786910597625940649884964504919934180106978368782229413153795687793680401852086684419612662089386011408005302838737766062146069334726202963995629088940693595750247251756848455732380933032495643689025882970750345265432731353501707835297261560154640390443518632244476644008522647380500379724595642300739208506581289455804506678634091040648435030690312621385084344647920555732516272257653343730765577951144139591539419094480070631825026035078720197041401057950613643526021576636578762979397762417433217636793241880822001913466256252161571328330475412660911947919886342303682721898823469779607892370848397266940847778976160848023071383152824040435737907684947911609694527924394821079303025567669142034096554587431822880951266763701906411605753085604644288288946644435192999603739722962403866403884545072541491297794709801864893583510752205461878798191224159378642005638427739982952807679170326761898211802377956508309195778752137411125231763913615418625341640585126692689739645084404304132135928714835265247514024488086138275831496786482155339327386476012772405147875517816956131999279882344522471652164313590044702135133850275249475430101698484014049488030532412650820415388705679811374466836050455262874803968151467901612470912411801845914371304895422869042250422902580685398275248870710901739144834256927258023045062285880500949185037773663379446205101826618214899653452112676282852765128350971762994302961905769257874991695636230001706667776788073062998271369175957613004194095144875774258189830667693371125538561234965128129515543397036616298645970469215329158794621880591158277912307091096751917005413044047771938934440475290194489329613661301672309267718464065469324734022913087440408354524485817339309512902893163030643954925126163320754806860178674104604868941095008326132418566657687543356607716914563043330437133702366503762659812253730914158467351590421495271814030567399099977308580816895260828483238980352579426691855304816601452400870901605917577494082541875601177916409924971721694197851726411308065766155201667388787071849109969985609362736903742561820973712065370738081097277809203824313464363592108899241354350950273829191433307213176137614246505425265621024850843687913999353815910596896471141244630991457717614530382201887550750799714000042733960537983714607989995344779745652800877451975481013423025685964124852367688722287469909933142313185228156493407222916807613185274553365219408379813720488843442527230957895082971445542587777781391634234251868596721405723091411218842017953570736436606523427724905578921606045394388902678130540510525004925072331249028107210828496736994461587753208554603164539731977226774166154113410051223214521447455427852476672475879727412227353765438917689970657395599120789778948935008653028737389021867699354577508162089393712694083049194985113749259922400726248764072468559828607840237169084694517886160911265191898249120052860158203462603106823269794658963064331895717131941312732247507645361465690548373292689783652262781579858841898756178005025486727875896074078312847858906989602163356955548678354295999657867182498442297685790476748678754064037253684015414334405056881972568765288691668848309277881495881924822086920155159760543733925242171504557119070143371501933316423484879013878101827756496880647513456618240608330898719150523521348074475419497523019479224563594053624828734225256592849483519936503409237571310823627021298538930765434310774271013063160510009266299851939852241275313365134529847765693498179420176084169359456987462882193197909085685408726641752769935033235161665224390731428958727664627105954543333003230193476824014753819387782936590919497906800423752761701052980804761184254316849588016425054591711981082391348748910052026007491447326144222449850721174914983450015280989194715688798950745144988733563822429100214753610200223380233817105107414118662443946667678596672070100236425972611608515603327800791945815278868005242654451119532449175448265065585988151032949558633418718428268218960475089213620952840394920671842711640641784976059329589479450108687577385721729925463292202699112161120919282409326602320839362983045763320235211705542489965513312843725767890239353693470267261149342029366760235449966142061877294407491409141049513549726159524023805401721883982717172179054384159429118708827915926774782361128993173021766438820818745980517413708110256133075194193674575404255959464897533559858416116714521068271148462298180066276160596806746102210478207319890803244304354498624352322795479289444578284588894526718981137124951360675032034490549749012115925632995300141237136629458377176334997720598270756432944099945177034940730681451358458303657742616433246946318959672762586640700183404378526628891413110336211937906204901874761926871152118919061457963979933457142343523152912367505574033071580602126934267374072078437943597987273499001663081117244616968924701196018252730106983948852705582361068729316762589329814527407613332546009143370748610430134386437634309872608897655258751250317555412686046683796977904381814559833383527996285465367506588349409935326407015934119444696238206098102824556339143419470967835595164927432084261367223841483668913964218098529817563234845360992455023863367865101196798366936160493376550801735579627648989754462885251770289077341697225236959302604356024397019023536678829944669028532792290453103677766122307786832706932938665220915011615988248566453920524632384134738354810638775476804519101971944047716167385380371996403907858634078413343935500911698677775897101831485023217957373238896032664765989000616498064150325674831658711484500496573491642392971100417413621486659833736598681863540631201791388509335613233241828418005817702959930376562837327132462797222611423608971190364119779666437295649450078016682952937233331152321717804550204431889611923071939613227831335568060983430149169266021316979406790556708337880240155869572773826690212096650153352607972161977415637484415057936573346005718713059049693859766249122001056944975527403684893146130267718965896270742990879233451875787903597967826717321774948999030619750157166991970867680600253640610080688948576638207159570329704352361782273964575471015617597516714092270199064128172503028899917358042600643324530967440200320451266103935106739291970942684767851618007134240459745912297005902073294233204953975431709282344783555678683467137165356408345238320302296688391537971893017623206643298377155423623874852824771579903471664595912424215534446740323015073053087928672345582089017178105082780081979605936005091924641747730038474157425820464042508137453618318758938106771282905751461511120185205566854625782589949466927972730440498241642631511742603374262410334883901900846570552505643961919115442382287960269854278216035411754803788850514772281989598163910738490436852393806948758005037159996848719088017210167951641134665464231985698323819011113415674576860757670686190757043037420262525818651817869315827666456491947368552342686333120446188519062915287650748452452391047806584763141283459336307583675217853800734093902394699375780669029569106542049217853898219010204541575295602017714835461691109545037097006573706462733625096881889818342563355692956280959637740007148357484584786524024900704188368791546964200610457689004582715864527214940274688126124877450100959931731660552464717597947392772834779459524427927616304826772831243191794209031415915519979359100283666117144791694234828576367816598401104007547059753855296534532937879823087162798334401308616644253186576599451606390233373664980116697531907358335831950050990985315373604940058301783781805840278285970698635465019192091494294942148544869164309406184042294505235025163149416728991770210085509224752076297941032716917478270492216633303587248653826228941042935035867481310128646373587164248949427209812486935489034477857607930343841963974979163044835783472197283921630030902550739837173437959839994960260182431373720674571963177539952419125488350136652641974395695820621042983192309592662621141514266820585990085918586647115738972339820846561881851257315205907503660618316207284869817909699192974240159304842536783522144678338817542610994990026947090773918250091240840295020783988874029584209812912440996721063378477982230970144159084178038509140059035790924027268641940728803518041483021594993065753535846386478776298058481874592274120410762186931363524271733571050580907679113136765280058320736876751083614136258530411859490028282396192724125068707528781907663469705171129945859569118159043364738740502689953767189453589690801060539726011969970227322655907409680468229361452394269299982886191279978415990426638623195650777873171258574316445311807189094726086248905509094769415176393395556310206581810857533674469614145282305943826827147086871782075392445378059099734402153500672289217345409077586890244599786562766322227523909519260964610195198222407811399426729250119112423462684096395203868845697244512601144429784545768818889354698282846998210891601987388962674337231966290025556830386545535660292600246420586402104248628536090827848893181177110803226427056429720151704582019597627879080278815931300476224054518761009425885727850715455761747181275277490531911761753664342587098169275439141093704849004326794244650659904585867251175382349768326092090976603625922869549079079698640107024656032250036692085788360986615104603422150109380925159039178172450251607178676290929013067321507878375133592627198302130239815368619892480884035386567809653113147881784272685568333934752136209531031943691437251700326199183033499454597530367103632035754801183181644234652790563926731446718359935702617670103960048114060643451196375576526926036419561013714099181974288740003373610612079512191149816836304577878910588682638818418712524826929074831128186820469552866627784643366781095018190633081904010895848158039619658740911701538534242471582548340678778411882187817015220754221094216009507814874665111700722290746949609520363252441834327149715579153713042829901910797988618457040748390168020494959677213994571928281366363382958676890437074494242425215080362582266793223092791897490517851118397588325279471005829284866002101268472145423757089332626522532322524263479019817041789561253225701140356870332088393571817398551510567659201239289312081474253427595220201926346512235929314925683838440806145745686384561761592684717616919408929717945877735192948598058513023031121961507732167246567944449052941572949844561362550752554698340255912403456748749703183017471356397658920438955425834665815147440768677250085127484030695267606394153973733178873197722991808224742374350402235172861885420826858503042098080073650628278544334251834291200448182586320345818898309559496726135109863923654306655843902950778416737958512106280685556067439583318095547965499254788464462419667660770305298263097996218041692274426660883442835999168832704968246837030770668170895341024083076459214044716096433554557979778884663810312975035248147709130683075174812647455241641996364255661344578573926643617784210415465371023367149225102038399425048871600499840008423526074306950991062372876114020004627470033080384663600841444406306521361147296517402431326145853931394008311266232974346451992880906531389438474049846595677246499447793183531020164401664881818163769474029343355106494756868056029985947838443394681422968271076925778954895070437279964549144250376951313179981659613029812348231264590494244803000184308652301934116191165810086281642640664853722944532221546046298878965939177149357384733279070948459414069664136478348999462616247386159232120208135550426435887811456484190303211840028284607504774555291978179354967515678071303440113134099612101177958996486168971659759637120369457204696604805706772160572551048187450145348905478818561231965118408055803916755844598473591051889648483689699168971960528913794969185752840399261307544087010994387299275154759269641867518977167502255250188183919864024986643051876910156546246698010546053033623235380603809738391705337726848670910058431205725685925332177685801873417742676344565209443228174797774681333915429383540866427430911778167810930288623834047267111225199362079010805640934299825915630085745438172644665510763304496557847622242013290734791663524453735590167761683777199386836264470323026425915773448790502796294564805803592203287378940526849855488080732340232926596279158978259857683353373895218345999261038866512643382268232367322956238560132572457006991882318574253483490283108588920328881894630842414445147602080519508904843248744936829862010272016155116257239910758533410472038763558752320327719162761584968455066897420123517007539703003763224373506260680149066060363703554735434696799841564979523704934916560265198633433701186280734187995676545073936274505779081726738677670782259066506915280580439642814190877850044112013198377443827045218221656088129072371293304506655048240577226504439531056859734550813343715764840549990204043683729551198488078042506413664175173114920705524620876030195313362210023149314264239146039051745846318699346139047563138334238054887063586724263702527943844944038333964533280223929596777749340359990149434490342589986646373988729882788902844706342646157684741027646806186324534797023774321404439391479207949050918569187279168497065802983957488772691558402600443406658290663112705214274850193250161531592679946574606945607480308658880576848544505469566104399582045105647728708229683734887908316072584513849509905310925918998597909587689569492843655851995653065172500233586045522884095378346420216828950795734733418242569319717029229134698385482053885695141409294286453254621058959829076240622417899350225027146649358760744341025553678808213696671711602118760431279133981606333239446074287840989118024337419568449146011916596010474431580582973660548258613862856051517475825597342376129857807799003493815646181189491956174293641532531212599462740545194590562624043873717837370229490924371228137898500291028931347874603117912335580374408977945777862058354074383449217363260103852207418385825200166692081875005235294501598762534459174989615400563358955461258332311943184520352115666976752647555762384251948192331968470720902306410694105632054634451566226719535030913719111115390195030266103738788352575562550868758089369881104997149534078000842505279226098090778694028005287440350336864036806983728135485722623497023605139289167943192406066207457442719273518682835979375244711153396925203984869646113833307473034513801897979389562707265730002641476050869530068972536614523244381570016934075551490948628100363029314921027588176252413612729821329243861171595067055254164884305210693069709627606384333967517077132579176321740112169984951015438821264331487096763151512060644817695488128436008876537583437672010019032139100750180128814865533225323389179073410134676018492282920645484749947948640882429524482707855422356840694832941000908690597697410966268472990939195847464208633795263797145100879596130940396305169238378165370245471721440905300950759063180001101838225939117588819426395567149778483214673900274515614990273310391766872604100117310189444159549834538000454902908137274854881058544183041632724296707647421216345991994664235000892664016527640718187936692785301657207429430211814230770853705535087005048356697667266544753584372607334735449324383059742860973111944096843343057344208686685736352134088395882424855696616116379243791529616300377455701120412720286477970632852492386953704488260967763819362495833140179019871460557116139185705283712176528186266204378254743396015917377251132482729864037031187323702333118013131015928340909178213701670411066402552120295069933779696088773775983225609621004375939877775007316918516889336303848219683773907552998200572353723162875111191118407917859430247502210327148134079215940571673698628194507561603696041934100261730349590357093331090295418196955449279100157123138921732342808526264563265451246360087747238671478198092637179663344974012215803732928166416368579716763289845047751839538024983990762411054967016360155755984932305930502402879313533830715946011901508598373843291759870858041455689983222887099260479751695476324365275802476250787593459328108303046104458574744127433287414794919836909186488209302189239886117412634249911734315448534415813218842404336498407005131652298928440673359032013116218209565999589395342366361175507213585427807283384632626354963929626037095064865688648680586869421281908925035879723448233960562414662864372668262823985515287690526664614428586308719211600540431684061808824945733953882151546903725124178765371484094793056970776493901596365480936631818167352357124250928878119512448176060404874759198753021342422028280439108588123642657412125824291996585645197743588104783726156569094799278562970173506867587586025371132473185254296890608933221840369876819661549011274922024854948942954769784099712657574206306118548107424388749761747851099369349932987746930794769295830614200532468101084532384277249916029423477850300744148931755751182034667145955269956729224932709406276056871152259015708806687451283818221885820964133803671102440360686919819467489311295325402217083199593916144631003580431133333904826515312347389773557489329996788397865102212259515999215524297649530335673772060121540153950829737064944304912520923989674871856923641590579914467940333159752080402386746011509660270678960103852032809983174960251166804940434517348769738903620106646877836102681729175576299381993605081671749442457871986965879620076250970504890074927302551743589067507979912349297230365088963023273737991453149132801127826672688220563039945349914181461584736561837931431538761984462200509707394245527420710546516630589165104193415522497419362578097954243087526197608711003350749063375742183560595695360805952318550897419379605820688420964904837226222452780310380623665109507494215663230385730618942849930074636098812794302347068463569452470053696616934204053020720623931776554572851377210977691228351114703834527015891703444146870135216521170684843284565652264399488017260800745171479798905718571518677941338801902402142803081880584286752718624926698829016614957731221280580613634476123903518787448418949426145665740251295238857155406475299811853933684790024459606614920900573079186415963733471021302526803042081689440249377232733944605807878595404216035331345462307068716769774722815361376403643526577393446019218382675093303734993416090394441779298533972470637397302901101667714252638777677483041637577206713025289220520218094626193840972452620090307577115720252126140417931789781441084043591250927626431841526847655330078915140130444971223736288221684905744236439936180844323807625801399861577272145528932237484106121461950646198976343437792078046515733698717068992499684091860453805154141338381576858391651988957964334364022622078931259489344248680888348852467722018137543481964045224521521355603455835958304522571331371239017511645680372288977901757120371182592767931495397283364879591607560601136393366163800479745501474716861584477829611708169693020729214126421447671548701406393486412635497521649598528964470154471780632785227355663211610850778033879050560458887696920506332447115415686955503386573410896212218665843065300854189193230858574686184401850152247556039870948399684461526706724034536324280697934000222598102517140644774426604232456872286020438164294045326830720067060086826093206056353250571258545125272195182203532162496198886264226252659263797242780898654136758147566816902218572955447416459406830387062064373871657855217011914072171117570096858490203043373140136051438599865912440973466046414114856323535003340006006107447567428989216155456359120457844380181858754926923390949703504380171598607278281627337829540168698884350850426175066982707664351304449295818131143405591838977571490248786617620446295659679113435538884719986557113644359216441734118632041504023871083645391810401167390446331115822454274454116231384852154803852600426604378009230669702276633990569715225525676879916494923945813026165008595057002169477174202178651187196991788067949344279898458603893001392978103130564868684022038544053125222923522417999326556959729814087219562094436822267906244825613870162591892065248011284370730133414352533854954158733639749507799779158228694035785199619413234731190334444462453828573164233966598372903644977834219885788539036743310648626851838736625996360733578164454556806787237006202194428906679460023641308216650891658990799634011751225227530336348834633062625960402727608594278540593002687909415723738676199030815154085850163370727129690291248196625027912461327610903847055338456372211418684799491479533781140084696299717037290806089082841548267810343234817730611073125586316881694990475120579787693275119959250978910401803155679189102857806573889425470121561959203588627154565533811261849179224950402446881269121953719506176794878567768872525769022775135803936354520787159375524041433449567903261220508538586896392438757189743325321085604671567352808645672594140700296350330863151047698969382315159215995424564519445711899733542027614428936204223993021145116178326258464093645765114614669995733304081421460670493832564333005372212880620666517043338144274647010306014630273547069498696810832996357132096034079217935233699010146205042515187840402868720388062914923074810945257219117924181617415097938836647572773742382162419902426045059819078636028933340458381179192486259308776102659865798251878750074705264104781258680985411000308314975122407966591034563506986515815182160496765306610947439846457633388657984766239627006023208062028168609622298224153947743535314565437774601526409368108938930114926176441850942841710294541843725578901627440139888654766890367600001086848723027404038734086291977958357236269643667927999949576961600019549255354078249520905426232236445222564355308961045595453838684535703744212591206354833342823357175481611777275835849739600464409870257361282509897024498691010826297398807723328317942686684136391960732360260922586740248590588564060121193129512013002152769317688360415895359121553521235526390841532129390449114640906076942214577811412686309033462247007671623782929236446673711554655667388401235138066368968214430463991979409166538620335063772157905318830217291056436592386581565381691061746190116702112414017884361611629134102171482133767423762451601535389473170614025076429791605406478734717559436029182426239052485611814991928454420819615436682564649521216760345918212731138000647239254773959971343871034536628451715071626522887942546724210108548932716585162003878394791483138028755406688993390848173161826657480092241008043731565684074121054614726783021691659997418128871757083525557028036068400975120448361963446196588655075821533551339935715065299275980614858462027933737028734900809528467550816475490599616857430799991024748969435385590886789158485653932022141255569294492532689225231111638504511770657669335371439215515327923787534050456589954923545176810086450973387414310926598851099452524562807167298099623847514419511335614150361297706459309404532376545744159565623258219430564635266170711527261287859489254299876540125516361858345713573201581304258140135742173156801018402082476755148713193555072157327007051286469199698824919115097565651537048989252653066814777838551764877339235691311415382470439738831933394315711991564402951696001299796026026165698847083855172827867906831952987052649549485548999485039392204957734386314393367475350708085106629498106591143678034502746334211894739633642588432404951194977513668522754912204478420022630459576902092510454539592775222527492403928925426628069772883424209008000927182619636601095678681463068160958893117201829302517829515820330121273191269553441338995638762534949968501823344015828544165309336369409387562721151729575662708866561267327501367484691580166119264282442762230113274468491641605346003684093603940261799244913180608618957988531750152227745364933228541163472612345993796768269178633873045316881056869994529351559203035474164402556472303241661627553555012140614037073514800408435018538730846939281687305585894928151228250463416950259119459739806509998092156122473794310856775660252614990462048984886946758218470503363427114753427770557199232017481516624085836722474747386674602160683940548377115846886414616319698774168318678684972612571274482666207522751163629183407398178778424078106521047649442688771389632567208976109832519448832014853062948147688286629847922158309748964602731827041322867854367023035823277953357049534387699885238989183802044682034200508234661263503980231482115327221465398453465217197735643051070940541434480753820379073148710553809160915642862693934110282791749055127575093804996593841615461652170085740953023597675622864808973426213262870731804332097452853878144541122502245359660931944827304673694260590543806256765039834945983075932373316364855841869712783178768073395794732478008136080348149547911202671573409810039910244535227415153391166451173766609410604039423238796264002628523842061448502087403895988541746750648920179292650178694015208009457357179108371025970139405076043276212802853705612267323369025233689433818006484335440954902680011302125153890008994910788659577529713347711046740564241067574341768955089831825019489347103333816291376142111483294481882794786697159317112890710362631302478155715654036911731568580680515203494321045639884750585185610899542327025571280975984942366172479895267631990624321494694201845326719714502266616902781407014099888277517097397006759102190496931450550976326251741426268093182769445668388549141355770938890743718384530133955727997357157130502417328212632095564800617597019766396001732142842093463591733814999497770584179201355025910180876350170530218380531322908415522545770430342167212423021555751715709639844007604583218445094077327751482689964993024090024725783022698608887430249931733718494366180246130192338698178831080718882971311976122053050367294482282253725933539628599818760933978763258222420568398852212347558225326636756529413726327212554113501137856308301441087198350220353077044403721573989028182443255580138484570906716196540343738653452703503041451260394120653312706460645679375419878153214742945334721172684666848884244614421690659347985087489260376912331728157905975821911948903356759229117585730035780602367808534177483617746874907990473618505780887757110624024760126405476239640440300940405277024697926139515934225305912561923783906732656956987203588715842052327416112361782525649117971761653732781608874907399103638832153961558434294193345640364154949269930530353343080504740415552959958348283885163501047391320882533478557232927350105242110902072765335160630261590413882378480284396541773366743892585226463824725399238364665356182209459113563013956478957762256835416316789541275575791236942693693926676899916908622168627872376786569428551666077346588557107217209289187525050733096607073449048372852306580358850282057002668857338004389955540070977462877484578134953527093623425187151699002799551215527800422869063801094964329194118117469842546049599371135614117535438186264010648767311301028088624611197028171432718286887938112663336173504593568152321692362740982015026022037901023297473148358105889059619629191676738415836266102702897360780319639376382292280604336706820468926648939527479608131505784033306101309166391139657946824426952330994976972813175963713493806119720876505167174522108158408800067123428647283213965561160120618438895063190870489847598018671878189464706913906513304137879342178870190720123614974597176070075490964452815126103871598193332973756188805944414700648707741134274589969890218745294353203107773013884391801777905854021356250648638332381505693529928784607063494177175026613715980655125522507012193445049840029931313081984559521104648283418007667765652117020124706918766342959188262062858231635656031139232466044707388571610301376391290600502384944327689102427611849146300023885227589122097613418974107992193795539286893646305478981316013394913557707646555261403712792822174980118753254570069219939443797062947213917813664799969439105068302880066016100152903113525188146639299925729984551745857445535824818737795702413953465629879940616352656698943568483916872382410770777358015798041586218421507972847104134526881085309886393257931950765527109792524812561584803327459771219207334191172532376729194634537602462156345178576458912507685155814153081647110386535666923209015155928274829823064365368017470443480875279844719928202734040378643641182690286194067835705570830311103597772192632624583992520817299190252923936271065729921909603950802042105742796980779489485434140747047517323067068398043143091538472809390465447144710499318661723057643271944648095499082907618081221854546771297793700620616271627700762434029877779694615112429712254863228156474547863270633306352062093796893693773147995426759051077215085274232989669822327515795719417987987959102676791175643742441009424383782682506393514100701397944910429376747825042374414512019959257319363921963355152814204064437139344914153053268022273896638715584589234842630306834962816594197822517355714793311891701101165183281674272022932481937933810337598086323105897699309516084766283952638958644180423419861759899166051278575448985648416313862142998595604007410566505636276173371452426659664102121400020818842332391030869248466363986469696189195362139582044106616913645619064056209409397193027708027868013547763748856714975174776007510012484265895797863238694087250667223478381746202667333741596360797348259344099982336392398778469682072216101880201065745249890315158417984340105181177539126424119449414079989358614446253137116020433058469602542701057644378632647488616706564809176167712316981113608738335248752357938840883499444811376541702887499003808471693708833965661228045505421880614176462070246130019565825497353395356837568461617256473022857091039030219789031440167283314551928610053594084795563604947152431524944069582137025864253982595834414606808667154733914693252238692015547336745742747481808135533192384409923739377665401442102630884771268412243057960006536619394911735210757368499670065301354144515268445503067314650548621605499398337450930494187693648550943556558908895794575553735701682741883207651807631618709345550195416652869431455891438776867813069801936667267971930009399261964466915568429695073699569930311530765942580703694216020401761837180684600298054431571582710931082887788667552990932388576707714171956471039503034326883506186139825284456000145871174305268233787648428706684465234975585003974252601921637519925401896743795040114670641697980337162540661548656172162661664455043684688759739897380139333453755965745893704811533406581623735304381112585508006862449108174504409111765396269120841486346463388971192944176132722290570020424063182988595395827019812601394746864331832186209314709947338209317294108525736043002581958712540154701150896761345253650480608450074720575855572779894800286854508412469562195101907325996929396692570733964719319085063175019280895562564582402203510780144053608094549595958979487284618180023513407410664346766531888451090813090376728435402681295833818132128572153014436374759508880655562818412984240547920383466401166515527811709995019208892137890539575915512746765942929399770870838537702621323973260757830546137505050150406163820175937464138953388790175795269259412970973223777352404945499446482934385807050253305700081984018545490716023552540496090889750288616478237289339970435618892676427366465431327133910947686954274751618448423676607327304558417608064547400777085774366890930812850709671715497138832968427236988457714376919621762274972017796508522823148519713002366040124314454284028209513665594125206521654357362775082474242244150020174181705387436508654870269772762117532111547355031881971757789738950571592849599740279038747898635194544473680705938773984782262152991026883819693297742755045017073148373712338973140445740904714583655096692543440780346997157003508262767030725741879982492715545762372995436101490064528192866450843503423814084892901448610623127624808513951848809047325719800843256774254185337039795959408895737768930429235237132364316993605670884493256621571924833694448326679524056671266344735705784400125726930644026713342101171311037863299859819222477564087184422301020793476614299322491710651259755609717312327176666521256536023804767771696079478450124655542411707095655777676436356470565800780754279463175995370290494337144957314326652561155987245159174985099595001759923931315752542364480901219643115531586411927711079046689727043450013876930500285968872121100079403227369146438456935284171849628110115109713766970510662091309786216282887228522001753609379553849721128784878880620528804258302044258830047930307871905804047352256960062899529463702341186073501353607362255867005860765985724902095663346854951136209822280822589674709155043226317628975686023859761777688067844886182105344514909204209434635112731258465025880186654594645801609238682193454971944762099754426536099635981336981819479793624216114001145806818640762348394304254032670572585779008444582637741774325385319562569435214563071833923540763841563169283529132622394171800446206583239469166031709679385301539262683134883059873379863961632132504582645845932960469412945901339632509887511406593472842085724608256076830582893031545503859278861808947817217558466271279496094681232016748982920766932341299004951602412106429267838884566565577911062492030863929205975185756225242743573654661538237273056224063473288930320035126235076953500427766865201774219224389234617016528820158945596913392571045735463659922615768094748824793991427108108635334747221399477632110927782346200128542374074723838574486199966994711571185090057883056473830240642851299230071531652244483751961639851308389208088845828559379119840025937349667302959829222362615433238364759196682449718367332314756926119281497780730230276945682136656390338319875767410887666138289221731195668565019157453169665976971680465411260200713038477150516806590083572966182373903481208485379417091605371849495572873654740335197193948102701179010154853942457225470980184862681524656213499492737598887861536995543096027498888675018999113089701845438648981653995038281466227624686816322393651322955105203261492888250548202027011979585620978003430761252491339694078517212844741731905937923661066401522312295668769135742942128010368729376900021543864258261680726191632444127847718754598494801607194703719544817747872243325989788761469276463464596240098941079477232206728321924028274769116117151477940429063256548637968715111460458098013410442354335687209919724062044742649893951225039311258023305697518166408476419330546223427408177152011838901764495896119650068318676378725416433925083193708560973527965208240920297817929143545294603268582614745345688028244222743825709981869443560027524246277118833604681664203582362386830088890800613705631383733244887403822938651749539582836897727801550717304632725618972905037212063670476262421171739318093579495558729622312355181666084597004421078584063847678743330352596908500503949435936891244602622256877209952331370309391692155247570432065172148633085437254245550860871707984211943383838884075071134799320357702539599566938119284181425006085270179852285841874755131544097664193752023833092881951983505262156708631706548951142158677710427151832225083441386185187066130326889896021284281076588153668841850575468774888589330659111186750545482607977186295949542783540706812314634113114938835334120691737679516420504842748808855120041074710139564960087788701431352828582940822649302234627819774952020599240274403718860053050677483367697057197500945038978989224460649832764352105930755112735094220812135604063753317960269537092258943770774883781070258943469218127488132819676961151422612481373971224951958326733364087346280061657355700594130216776465128387994607640100569467099109088042899510789633680066886010493445796035607316988686547641476563988589194403379985568482629198574783396071189779847299172285562102297011756373393993102462879252234183179835020255314234719678217029331768930829183430638720964669239447744702518916819870743217177725132546112319952629755829358268269522519560433849517388996516028658899194651703975288193722255607656665361859356707011764038355615912026373169132523118256998428745354013816708773305658434318182955119587573778778554187958501487065138829442370714143211635114278975801643878217671324651904320645192070299511736426034879399196454137853719013431304489461158692153607772420437159249312602252025408448078714714112011377037624890614437782947025851621338378284683691124700020188297710950202697542710078289227380423735995545011896036096761657919061228130941049942787889501196365132152104411437108455577638497940472914948724971225836922293778681726847336009931522507768433312777607338901727013890128840719471046593092151635207012005869686564237925952522540375931872383819172061278816296572854296251332828409517269386484605703186589365501034498804396101237038847842809805873756983983523122648952262037767791522566373201996071500341412882751816327262600027269995022027852444598290061916006712960850216673075636934232213859658365584781932618878762327627092543580709366518114037574260397032890982460488910452940421038941679205473229492196155945216829490606656141904215266434189802743980376238567817726942092000863599701718316923364150997990699550802219979518706421265433930941033122991176596227211527882149624514530092606999186486979630946034054522259010769363320920797564380203885483736466383867253767082738478715738764336453721240278911659978195064728545816370293535845751991580717318174027466483717377735967223157772683309897026533665554948453708522372255529274672743771090091427141376916681673915914338520797125343031271093673847328822831065534240874563109185648270308279468879876407138872145252552622154777949023554327369583060338532806551476814764873901747663235610978645154596674299903285792205842770154852849506886499599433678265485087714331641939862275783202885041068512776359677933382820845744543733817660353392377595957672623368125956426030712228153242700070884169100118649043123475911887076319448793110234311309054277578788804264472810531629498285490237361390668111707180418018138949159513168746399059231973845674689791153672743636487668718967614659915888748017195308111140493033505965009139208626901976544962035691716302231075533669594497430356852339166510893664724288377861443501849552842922585683656098348347533153343217212411637218752987374376583335924694507348720423316565031438093788079072973966806779926990086814024833693338450709677815106798545992564643687205179537242568913326577686589333658007116419336261123498374702167132711354101477148002253107011335850579165949388114166229777961947720821608081001413009482606297305083026842520837902693412140001369787755203788957550220595662005693381405736490719271977194231483048204066995644207191598541666850008765396896486076885954110213843786239828629694884970898157404414555129711003154748289965052586026047465355461430639050750493101444130234952978314568748739287569599310544332629031036804862824273546358679019476854172905854869860988438985563510483345360312257022482131188358139927929327473843917973002480198736650651862210386409218352224839238825214008231420162551633464303662041679351296351500125470230804230099972787756138445117216336335413308777777459935757529881390181192224772312550722222336778391463229956209446983589700094966096109416984253581634859541699066716119078829751481827257617553343307562996586961997461383919960342229439488193709446956503808236462565851827360398506785217947585178176561571737427111390560858797216393407994894947843934443858560461088554060955877539275495463145128073748652345367427462733419504990258874688852626610756761744235026614192970538153573854582327087648590116313531976339817098878936226354641004900561313680613144851546749283648123792338698129266330450811623695044874776734351842959625488058715696889708359745749994248693305064767740760621853517190391797797358803160364536967050821632890532284444622124226758288773404804228602427394795892133646667125605662157294214679547631583893848155788427864014283497012555088425236192638586295031365940714473636400512009367401800530713213917061783065296488039449652313746940892772139971096579762385618455623355921685337903798929040636054815234341167596225647090215703795364031405508035444746086342870360407296833928796885602805824882396946195945355799608666407373187933012383797124629941195320814327167092692759293097236713065598525929827887189258514243833420232674408952283148304536186920607315335742229308712720776720693335332214395099245648974966496322302730665400138483818419880881538142139991965485171809702067712258825404514947874710662721739917827831186576825300919431435741389080883838477236012391196136618320182110501830357508827294877101833510148129758138877086035121406607769149866454709327461484332460542947407399018591191306756109924124219227433883782933857441614698596147122985688194486935703971076066453347842586475034506562987998141590076471448595810844303666248388137411835540574093074309778679790267082354307330632433785880323041725445494338413004686092311438663377550368342194952692584895807616069656188940982013795342973049258519420737502062674247236519154567541000753595618658430746844960755393092975201440637512903303021108145547532355242678633746107258525045308805843323311720527802264261401341596979632573228095452975761075326382715853983375764200211676871716295870487621056774456814909122739751468976211474844157980866324251872320739712856916436348344201561594490863534901399133931844809502570729269640545184123193776539232970048197233919247233929604959782126616187404433277873913799321068475432604605549418263430960763039086637872914484890205343586560936494592370072835220262087848860942813386272897088796739416872141106841208620815682567249653042982066180170646200410356674887540733289555707518668696475808948661263170623595092907323391229365519903964640746657508927681752739904650891830648821905877423813208649153380276218505341469235977983537427100065157100504111455468128861481815395443205449272610767103534934503103416143440997621861367434271144256428112677661577928658261010469742663169975150648546324882585995837576789760459646938209619252766661278015822348759546895062326927937146132686633413759979213136694736393557811248366939065922036459852839280029629326267349867047742421697302606083842394589839635136396330088873511686448970940368420920526452402792594266773802467119653800546390780616779712917104561875768930578152180073479097987865794284197491780647132041658027332571915334748544441908012075410357000691052641440880196984655970246808057601605773949716310271290208853966149283222669834133938317656152320663976936178384480332962460387687560543064923688478658403653675235103928113962438955929927873629310079873018841981598046286917994919980405878121986747144444127087027091654996202744277983540231052056872945913016088316740424861149043875804742427377429761830794174495896154785231071895921285999450807866986121154170120672481824572351919885895358148143708201244999413718332588920472631688832084457129812816147430083427521087532784346622859160407349469856629119200335349733551847455063711904276587867858817096781134152884074736121232816808197202181515457801055784478488243622908415197903719751012527504171928901880771286832364776777124092317198520438375143069232261224865097443259943678192685500265470609661394564230854361932401982190077442220771316656478748443078310845127731900210709960854653231100669031757726475885890038620619891527768471770851952102214454554513742878429247755691353010650977024719573625889324877542475346315630538418259151566913896266221069421769848595185263656328380589773828790080748630442148777703816378987643919906635802613795512196295738637169732779951224837913659581389100669104210857628984022654080852215821574039212550296405915482773156605902002638155492895274297405868353487974312874329112400509094949411973048591354472182096219502539359673771008045821483943328544110164829830218333679243552312873441214443913995349784552015535694514647034707535651761789268507418920498077877853144323233835250880160615159691107603683731230297665123351480614812418389666544271537285143889667321987502965160201776088442919284753020800927529913458409358717751030027753859291331685624472355791479007067377918177102525371322453653417743195276355089891168023749392079703013410914756109451825516100524334103251043695320717701190213626281570110917777283707188413209790556854371040515393432764094273981170436055541909035564369569329525062590427218121946840396605033357138550511230215162098798559405839960504366081481344665477582446558990561609724800524214266903467265763488424164350465693853685080184303873531692367503626453494894460444558022117839846562759124577064946806178673311300329847256791001105374422780854945159945437313233206121761703841149974251160301739388982624636641962497731949473522359365067199233095614319891758990151093312264073518311601369221396878092806364190138610093694388609640523270773685077695333031092715306865297827964729578557271784605485601726524125596985922910077232203735773499188711302069807281135658419352118778257722876872243565153223289715285440335739747635614537735249939096585041701287741785934778682421355453721742108000043275413920882482525477351222142232713340796494435472004152331917781629264325658264483324296128411482761682223131743120089838294573166212459532799015956313640697665078005509595359907325638789093925813236059441811011376345483887182404310723760299009022313079090145976807130318377780517211039236301001309055452337355564924469153466287743427793034001859768761287005381514935152692487813494629171021601579484277124764165544282470398667199798206262684812662770149979072313367531447587607153432846236967339996151707514314659763872350642700431198241553154647974786726778474231563053136602105308325848349962565265314431983461322748632308912566763009616949780695212991992615333105141690567611422337547460527897198042967027470120639997719129117210278257160276313682531690512934332262792819744223722826133719269841071795059979367708618360196077686075833204948956728258191090917586761028826625278732421471859136504843024762652202602374079306771474842140250757691417454503262630603340585083837194083793305276033154920276479677097337863733656237221961063176010229189903440943306067759329176568308395427947459810251218643697033359451659810130612844433489421559521023310644669251611005134885559711035553979091604600673020159595347907821621968086873787762086496986364222459685785037282565055020329448590642789133997480704270650641451454344543591130576532609345151279279713636500762645482624219893104968109764358847568841870390882286246815754077501907862273214399499908992636147260471828611616762550448162062669597764437297093203414808278012983422963756219247056093195697140558457901545192282642030200283677851543240692383874828297667372671314441822487861477865314650549193945750895618182689455505500892080090812422835809096214014106980046486150736141072636360139769357315583386442923318962043418842725268453378355655117499138781615155127001035518394651067540201173214940468716946489647676878563673068617006664416043556958192919091317491481734516231701679628075833910821405439399622712383023708586274882140371448815433541113051604545196652349336944512840475488622018073047955277451134007777352435015950075404078078284195372264373246105287075215735004227677725800991167417783186522770079523427980968077911265534301371976862934120976167895652578464503618491614454555770425253804567210552829175021305283021428745523080321474289260243800426594350269118318338504607406210835647865818516102808812538436919921607624671162046459783541360902772496245991662284511371139993419774104144051948358925384291880849527999768108283616966475085275306442379229585254544286602599788323040361049449951260134390871506481961804544142825938849731026861694444703408265243137788655117967366647101457784974151122474023302453025659633464996464885544109179641808873348983520356708228932434805164386660097739160379206122716587859560628293437388185704866967666264708080345216465722514113104262331800681875277446760816940239710940411035349794696326304410807563315965263756849302924794227293358389164245896678909986301885687754428017732378382018039410108950916656283724495323613489062831094830024098438417007449174248003534234872435424802703570947944352210038786893684084736804799608147071832534387610391388038586214341950500782706742688531553795093316072722189818534698339041774549961561053656982407899698844269340476164983509012468450022103124774409841478148174349013019637528064921794500547621367079189938183273224601101762027890459636411305898057562989790296510274899480277226373789387148713080127754957899450236788488648646911475854952854142759099459600809679456399845086583269846064480853911498207028819019285009344638698322066221723603548614475635256942101764628604891958480878237198551245829399163742869803200618318105538718318967310428791574231695757380206517892804329924378646583241216709743976886809428873699663957644999611202885860036307266886726914185362394702765307387240542133241496115352635466697524399572145728015664019953996957333887762536426610303852612354928435237400001630315303870413251523426875534266056280363378927969254156361571495184659615599415399306916784817749217301577243168273560298808802067092262203009735958773785249546210574878680149054740086950506719621887211229751060366114181176770323483360136905063130578256748778515930016072862314781985674220054883499021887745352791804170676289035001743843108560760861401020847859310877976424826129715962090883116832038203328751947891688625831690222719570322762975257262144024223634801271954432026888523066738799789911144770447697341647165855567461937045952053537768497499722807521483579180610125896508937327060271637131828564712293309053444587344199918439539985298977462239328225556396645921650321846316481108616856284424440875852009761258340363086751547602113877182162654419134454495625913801434205248364453084152200142386634899517594171421151137056177001299077010785533948995894981178458350766417645414281232170586449953781793584447948319406694144920570029292076634847734463731468847511297544622867275807147610246293839934702243581363725779607186995325942451126619608972016166259922397934377649937561404414980747133682153390880911207693628285587972581496550047786283596428630857599831758037786842145043585499392364360525389593513410154426087494286615620829624370127460424129518887406693085629310314520816211353386294102533859461615926062107461234116881542185136968072988618949244054985018111365834140599541970725078244125981620895079467266402390105899568918784516279117107946393750923414823054721293896627480029651456311169269151002833390872545230536153286545205258397339040083745969664377314825054842446793148591096573923794197757203579292114214149593041763002521642668312741434474149036580221972531370830196046843136698562254169923137254606119376028674897247284115475698467843507492991755946287903420093064312159601580936407134766152820206447423545491175233052903353980545269738627321328681464342030735359306190347832627164069191712235493387380866965876633503265397589016403174058956525598902573113195558115347803958660226730407183862674304923224250015123014340859504722543807990034782015932613052076137649787653673401389906419332600536027301154365958499517068402542640786608025260283017328979190057552623800577245269163323479095673724514236270075502903194954262682378150691278686273526872598243477559905310541925390195181819203339133362609116596823080391677860461134415870668234226988373602238052519875126771384790362750895647040034221783181020116075195327470314539669125655549936524242466140674650532718380614177238757587735500428791558957745403086768124123484224053264333520663822897621436559280959150354588172850162855537344613095622221739621991984548833873379394999044391821925578888024869435468903050354683622132562447796042081999822286552853073136042045980604231071067331336651979637673067752439139041475434326606578958851595193744294334016675858682433581023287102505037290353182655329212432171842184645158626811981492824427338117942983708220322277940998295241976728330176789077521584106527705558706160135440566120995593659928743826126483673405259981160348192700042745427242940120426197476271520685804956737594255509429470424672862432523147136953882519485469373145021362585674753959919776664640294111413184564418137880199786416583011659160989886998772882009761509082619864157162834975915123885131113272847920325651301251502695088886499384528426662618559097800574521468881064264226318751122085391362178993286863752366540551094058632645495528087366080353328448336922342029792199862044554100294830441372679613647285204725250168593686516013575147286603159948157817607730915816615279582178960799271246284613738295896025546704087451283349940386741953234697599360703688052361335411896955376188651051956567472506996252307382874436634768965001236946480884057991182687932016148868435352070827530471567597302369291188138648749267410669128563529216140955468724261401903134754709386213700547918382324173029362113855362085699195200281575980375515447854912963374442449412500553343294153738251018034632762395667064352437729797460241343564953327822287363414729355587134976736836295842299808442356168321728193999343624738562677562290965432040757237546950148547108855343855745696128563079598070273224914158522573266520498922957865201391463187760421250852283735053955354225766377169239501916869106840966798753247689848178017584931265468878558052510954164450065880257869272757103955812107167624081253498511304837923846192036666495378588934317242362053669779115739615702410302234051881204982965148909500148623747055805534157596254516194011037140627684634485192530315112626838114452758769983518682085058489414976272650437169358628361548665581668063322697259116442295382943454746600860193122130253454555050402655695994279443390302632748000595708150678752150889506835778437945060005856092665360690536608104927220373019076175511771843985243000095087749398671084464425356270119431984774727244713837876693009182062636797486538730100287507656208929476676922633739413818429193756304198701847539879596021802266584416893477682757997227895217437274549687535216656324355383250391307085871198139297574063761155278031169627937459281719219343668996618274383618118503451261881597211580621293890798127002061773561545743854304143873873901212111647426356932582731003092150515564784269668699055737963303898445156823885413465226162627127768474290488100777471173361471475329197020036846220286272746399582946876087068895555347493526751358209434699551481636099632650691238521872722700381818956395386368824559763099416639222205312623616757667801994029494308144124712639775608151509835421715064084970635099714470241246256797708875049528834036420631626876366137363424543152670174423092863355105166895033421734547525222598352644049713601954514008403281741956283391142702386167458546403584104843412785394231303091390418268478271504055763576070631884583644631377885262578878062305879006675784326767282310951676426208021874643593993734313331606342428619162986848157445534409066459447875006471427554094486066124256322755712242144247356470218453773053431497022898863158967755710084035358617371355565322173749475206488783345455289552294744587433984021052494461005818456100341987954369995648647266103698947233899038453585813340473509343083118058677976976918450102563005739326893403370680730995297380894663142033890509052454447828784183342122404603395708055424818058671468371813428244469262476343508643640371968297475597570951019145915035821547637641515457922665785881198177555712880872322047609878465642672789808511254814757560595133677123335970608164777236959012421344973240820656533394972315746539853740310771193783191007523784825215601805969261537405469448879690262052734851309399332561300508871688622621776150608116193526732927677008752646814037979339871105095209491514738223648100175075807283190696284647195102096712000534497629927575461930249708418996309916834597832715974472031615501711919967084246345123652988319000964194883185770860261489216323023936567354337003088696034861875205128890137972770513315227464455079680207358368608583159410893650599820569886019131999357540079664001926221788659948080361452107491236223172995019865573702624381631880169366592170746314994714516734511463790955636033636137273060571773110534058060400690061613488158647753318373604377394188821162687250292992930448707179234221931025287929200296684142532258615203578486856687472659854925499859725128381779600062812469070506033052877297965621797636360386991661686781607836355885697800871507932400016692545006385019157867259621264948918917738792069059960497980303754839970351304837919304284016843018789538135821847725391576642461633734363434471989546778333716056747555760791971963482978791572636863816570742500591005451072464961731461649836024846428903167155498369609483862122398898217937074877371371026421664769235777678373544774355724825908588864822477101169294924294223406877527574910268710636760893895285616059707764720668622385848655466156777076863979824065493382039478025884816286188723091985500749421230259000580244446367822602166894710761353923768443523075871713300006306033271041673298432169843394027394813491879385446497973776148351209321939984930517680314104591259708272360252894139580707856034697318897115283758624634913911698122243686558177421396498818594287926324052240235705395023982625794808132763179020098396690274313858683842061771733934413210541365929692364442995117094154071125806306727559348274880283487118393489774873427221399274755226814535801799875278488241819439447117799959526656662576122497165877191384721199618990667004311114696758422368965194580375995182530923499937175909617351955547871178437694469190628743717239750096106016602431388103160472566752213915010993881201884887496570762917255504166015182389462267364621422285842789492840444333261764073633182911930852662609385929986257014218213663509605198087398321950033989165151194193548173344259481394587891424720955617147487748640482983466732765369814091632066922550742215632005748282109558273321589035582741685855265512426110590325102020477838012097801147544933321210643951698977059928585707849906962573472178200690925626251115327459041625305318782231075799029425501040284865711302151580275472694680395270450421704537794786901857426418347655753583410242238161021825423346532219914684009300336325995525992035116267515566635062372757273532290138463506252886080788010004794272211098854849263040411667626488564592662178621859392849913260140306764115357407814955528743549714780531007386963179101974593118270111339413774492548584319724944542348230303631598164575087356582439563141425559614103856352178941620714862478467854969357021294480505009256066617431228091681704283768216576904049598449743298835798304061576459021592091274439425888375456832188756432911201886029380006753422145244733891264236847070916019554636602068446152056885296282829616800075266673877420946053933324699259531540202494641029352847270402296612607722454252674486333245933519546202363150142713438496573825375274779113076358486191818123198019599662865487840084722044655550748595377042778137370248188323833856566286953546187029254746961164200883015263941490316106367464982046627431590828039407998562643202357660663744898229793763356784465951447712895216523562512648030046066959903702060235832599723820285771317095050047946101499704213897179156158127390365090601821642188763483164004206279215412548763219901580967640115276676096553280848258261681451508483349366104226999294854780143419550711474713198531733606158141500834089583132046481931714979043291773747416156479268339538001826450773768790812263193401075712568510478469382927074368475361809681688588556197830294422307069611822495225186189463914104340172347636444711188801937052398163430015659302527330609879545616094539530835304377168971243544692428982982513725243454718512994429537076683805493073694418092001078560169616163686113516314226034586730563782821200480972171712881299631463625241934865044265923476779695705181650919269435467462500520261390004764410306968446742878712108167827466836305794132492981814954406986711314189608027207154243076247067783840955743766107582893297203888161930592392385087039506874191071972998292418425290797336759060929682939555831856512968379576232819133117789442304806275338675565607153260763244041048016243763086796167256140815091380387246698363291811308500603538694158760028131593356111964218783441030783494644938205224780014690510479158761284694893691741408874809326585740988300550244474644622548482359117036804381347665856246001710836473947876132712698681740847373054598860332124366742968093741507660040639179248282697726553209258688838131485369070293000313334269102354004000177762072471636502153994368936001033146591703140363292002061030991256034030780080787466265382532955926778562318422947450063866472221239684663049742950400602512929785552507307845407279146163378292571785369475323114108646923847781209568630589923335900418978624578026434848189707544610330690481205993441431562811353094237625690717808586515817998047162198550311423573293335030173977812657942879376028353092923899854268598936588745961407639967233244635685697144001160722060435650742863502091897129172730919801809001773416285702788397886973081060449030940027681491956577093799132806909483269887466543690519548661033394855689748449596519597436185769140418508323528944153515006448751141054754592964648135925137298415349100923076961868173044395810442596297191351534827639019991633888574609939248075369288779650069357589523423095716626088591945525571340643275201925200169564329937339316974674168981389960084928761585110640509806345230903302939971369589098248634729701891417142645279511591469660514115385294652211763759867434552019191454845193256453856724171569049624922032461691968236092882437348271050220739124461819138341453503475142770963180591004946958816040672394430768478706834445928733839621819242561990717202733052725309122816883885862995396867642672580278360743752362234938861410291432004521690189119446693915683698245499858117956348285406282064540556335755267127211578697402104125517822969717409174944221236859910657429143746776897952327772958909418531701084896967269248815106564970154614600475120283947874812422101161122574495941709088398025058299549026757741484417176525505311386725992981207845250456928098683290907624868971273947076805896041404850546816180899328056788647697833137599047278148071220395566510472742092109475417026951576472959005200694844908273569379724758637767390673332400504462710212399306328258577352752013090396855117339624922102069571137460368028967521543690151088113618241326792433093207523664432540905490635360725253153823166429193618919366820303373669685626922012855250955624168798432031963191290078087877322797300497418028815168740560007283260725404769929620031611188909248577616271683031184567607441933904326993403658023977534430885164457228864537920506290433531255030976080337578605085507763625957284277558256129062363742398823184185410632100379898803453274360952428910502007858407629774820944452951011093000226116055516628694329980140245998964757629475726284579424426350184083846011330728776457757204453307614318046338455594577880141581923992118279644077534872682910025307660776459939937592971282313025985408677221440768418712627436455396375563560511924661619203022330451845571223668689843121428807078225769506378912284304415629772256720973773582733796663856162472559186338441129358604781336532806610842820215631623380500795340213882575530663297316466485917678596433872878650536202740894713355760781806146470034897934973062770260655980877836741975035581109732931832114400531961819536510776982851136920904571787735610950742567151019695049171328942934139884144545664535039620504784142095664909833840361630355738820268509332867249571205161229093812512084415228679875370219275710986687229668449184028236228610131518992554004805836310970659982889786595538266356522840883410516872372142888638368181561693918070161133676475317238171918076678521619247931036211015953948525568085155875609753465292827807191777800159556206327971875930560838177628004690702518420613365670585716987502544513426903652622331568897552230089177507490519610542554638154824005499987328463820230902951237851944831210186853859811679860665274211296695999001759739398565655091938486823267247577230416375774256123593311347611349960865884067721306969554146441468935111164009121914482556564428809496703166980114602922050454216185888632150888130082380494545921493067048579796229500137792536893383603073473819622773598303493571675795586554068764061657068369204160460982618372080201422421711186747920859281307219298836571381581308867968809380932017372967585313783908614536545214149525121674392336226739937057040536874300925226122591665216892993452879846880763577676457675553672340825844449995978366076788609333654439445953963571526406132749004092636354792794717872560562798499757080822095677935797030133353359106298270528639796744163862678989991676451372152124032819738538958208404344181942054959145986113409865825082452149079547423316822330401273833699419415483455329427123455724420542068496996923034609040659795612902638106016186028918620099085439028694856434225981661409269584925389820713464980556290997481118362379317515514834387069008649940954502900848357331754455756630032508475913120429857886060218614861768926336170468333123474705365036264958824445139304975425295545208219627181654135716901309848952127766940903853496420514765832211265568239200724304710487165200240329906517968105818091110340107413022046081511596351344037948017677948669223130271234188531677783606878242481692006761704694330185565757858939770435654948257968499419345640963508443242129908908644751947673399325228414827367844995233048661317658437263536526924672378496590041979677320035430867823288411198596393602727326118775737144807582806353830103851266502675052305554202164472649118711180442150446919173485118723710809991772082994472672029957512617087171563619421733623378173683060232889124176703697992089492076374449682207629221865042266010364526508057421839985043882703199336450646977875117080309192936624526868682233768002647919918054830992585913024785633479622661157618932513174497599259129343638386434499908895560431030707489715900504660942128252244028878551284254082761815209295582339429625673205081232194087218688800934394747361412180235501549786802011257084632613354669316840689163600633086600079926599831880459416868369157209371940016534593615520979345014974050924711550411976387985197414744845892668582176346175446319667120533223859532737365882614654785756729388105291651804975187337503450498569244423855167643899267968703286853320311478055144993424076295908531780421481524844329560521335918039330406599155119162900930227938541641469146627450876809900313622551156515240195517394155731046648645304685431902127453119638474842210410899417412627490602617106202790932946117645652690979774803580793763059229526481707230647264818665082492231041616087680977200257374757855271674635513809647527782274305866976692373474752569374207194688947026475396737659360027942475464787450354473611864970054448409358182006472710015121962003270526004008542337546566126101578699838739845975076141147578073624015087828339578638845999621243465166889514977293437207309661778162792952002359672728743159058997847617905872154407141950691741533150728804492345199769834206313265487142980812816544670973200274240993201291013915970297164916750687480584864973182071701969117187893974448990923782006463471080303634728221748488757236282279936469972568242631348385027974709830351097195874856298844627142006226815620589203709863827534433765332166487904928419225422712973017491459028235576079915016126764689863554769900761612363859180689862838651907015490154161197211683238964805812413953938830799611002060254931330038141628800580914642024951417311622384276284289534657635924631328725307855644140944302186806712515133931196264048584823849938804687244262047357734696519365013900542987429940671541884354495980470818092551027718183713341151944514201263123626691962091970566335715801042808936204086199398597439624167601551268824095837968645878385398276050873624416306323247131131609381611689274004243101808858752682189900991827764969178451932329132311870871712252049924041303997713675138525439396412246910760049480668989249054379769993790675590160516856076598282470034672578109552781108858589452092636125066111373714036390332180270588662213230839303150744949329813561837969339171661564031526854111272064753120653725991936278583745185743353792988606817277726609720799129468288100924286660190936454716630144733875497856506355066624680865824955995174564932030804954656210086345086524814609015241194652126456397894735438228295956858461151319602652538800912588551596993639359167221047683977828364023342151915849048339553767511128236927929794564255285240248873466310602096587666925780477323992339146018403414766231327063026036435494826457455994308775964043229170827467175415016720588790920804106891851676860903497459136732228481517216009047493854645408973137377399029274206116322798186759767944675085889354736053732022312094861615513477692507896102500750758053385674359855400901560396574055366305120769823219871209264300452801781058203199713101671901841476519356067829104414246378681604703537692123177231342168808126270322395400424696099962217469323565203543925091206259850365789820482972867795444230332971996684195649606042216749065390873311170949151645105806844036690406893446495784860841779932985421442088850303074826285318432887390925718167752663500531684893085077244035355832861497271306611113974748233446519122647647992488962649606028917030534122283935257504508144706681508598207640487899437516408810028332584044480656863119730317204590034655567314276123715844931585786006858680953614773980342419570762512255772251396291742173230938786029431527796141178628170190620610951944781256811116435825737619750668413405174170714837490777482094141651135869635608300896530674335170292252558657625058587310595296092339609437135832928661383631120780972647305399905612062821704481400259510064852648544322095579162432028519099088081949237594010198737608978051104450157726250448214198834950724757497605739617579222177311780638805384808712907333578305767423525339170004268525638027846184384564890984633293441915249304571160414599719335665174071083653432325136529436377299030373548203376073565485932912956339361679911055858989445330869450738482140339299929428082571778497349541911042792901526095178933094798603629610479763059086574796832065383784336238711608200974574106431572278635076665030271526561018325745824078990120201629488932470745251263975917812535525932286344839859546419724304613140762162364730662862234156277288160221365729926568581182817704811950272572505913283680743009468520058760191126347425271558309600093884035888424053067885437695480813449191985451795220715552990963397251483863218258597982883784330186834691101614259000231584600777960638309029093002877710007705999672238265363747740654569351413036882227584290620165431120666856650154018219032222587412121959727342446622912965676607108237621707149331676460926060772827555095395346606782103900154987580444996201337302332090907729452444750509047946047735188723030595293583501646900005798779262198211173125268469345849866149200601298912671403200042626269570782617173111382652506669685272148335775551145538548407063746318461219048287822966040182823474311084902249948211115713311239693320808669142371758692040904359345260934299588448332779722294075555802407139589260736001039652622487258137982741943401675176255693048162306307725466767771192768556083953365934306386891118948882712339335282554831772489485489860557436674125951841843106906870715321605731398953814548667088357618582335057891243093511494334958891381878274737229389003655632491325117376878596753342322661813281930663653088034241188396684601720611988050615589343294793754667118196716432360622178156549487895346318770509452512354155154276041818942774386519772376311885865936733098571030823296981643255160732512710258265172725707330064634482044281957139547378323427277998931055029025163036293843897674216745484651951684003292319891896655235746132565212465544534741326961188944747305869233385299015081467719050407132766652563588964924381479212424766295831184174722206428665943146547407040989235115051121328223074360125068967126048133198661642620665707132844199886756105919974979928799361448430416078823623420409038780292398044509744833914451055853191118231830216146991112276564569742168132500144682607395085332204709547046799358079481561869116599563440661554958342415115691594326732890436856342614528806891388773562546893430298698195904630511706145918564446457284331236115640785585559275883778175664990948504978525032656887752446566500485663284007618334922777502300982332486302210907037938151916066965210969969134837110720237108056779561083390428754603992050603221538877767204728427191445841410818913252583258627523071490306265374043352285362980316008539387691796039649031933257559610957544874302882426366586552595806559228518394030247844433958552579848799171103546192961777374620432477140882327854906957193009892359718951012503655780976153844671933323110589452046545729942369327285924449154156820937813708648299002239939053324704440535889829225388443761118464330464455908436383341744909773512940963370095661593650969728189831363692107853182409032785292040289227728982962727766644476306969594178502625369491735336035204147589700697674892979455586376646721483320607760673275938732921819816487799117183953849397512304334051693582791172482835673042822071971070529158779382296499179612808366928512188906428778303988314252725579509352224995238905753291001165990127507964801911172744644496389458215092484209958990202602500731084275997517462637605149700759613120007826396655314461741333510099023618023059260285947364634212988811743543054441531391615407917421412524990340598972660314827554633369983603941695941980952935130599362861950815224583741044478230767856688149685996648510688168562049419154795269124362161233660023026214292218919268369038494560968953101882989378150524539758683801986869118541881942947850730090934189543451424521363901813008783202298664328429612953504741614925993919800736526319901320569364246990944965662850612698996569082717373815292900027926874210417734105443179920046173185062126675345110111658991529574398891636740590692626987470980184306764233518008854532076596059817725884797409184499293192035445397165161870821706852989731988005772881981574117122641319383360432617924000149694173655753475308937578891640820500166127047441316562857754329413132910124842589015086116293721586341552944603509660141389912065692199423721744169261393126308116472603656391036489914430080540868847236243637027873690077776626446049040053750356361887292699595991778009257189603338012579027194509630818617544211968909240568308596754486261257950116341728646324284963039821359639746478470774544104515861729834717460938126693953414018442561852142585730473150064115038016339094020915430889089534810870951563501632768479914405403637922873866033477332412097623799896098919623503393978990583607395868152750392940205695492219186222974373991653918686001433199975483939089571189129731921410034468475230452483659384336381162343116383284518581899638085168724012785367269198406790849193856238218898322820671511163238904951654417175188012629357132398752364313287946918249182944289680581293406521151741174626623033071236282518002871197115572105666117677493135005508414132278127683715818369133548883171782132026580957451366932576389399211621850997982635596554484776714538483938544494193466680580735256530473812799065368392627177122606553625136337507514944864923337544675723956393481244333309766164979586132101836857459681417045277998691412921444908346960479152389395147617679763357477382305734666324597535157743099234052647299019724579040683791250446726966056946748380600923880446428587002030164630560456871421145053604399917089605514524141081119947679071688439657401634685008787479726114242480928527132860220776072886397539438443130315655053753314939237579777204563177014469264140755939823736933048805571137130024595334318771226548169019846694405610912929835232281110876380531661232447218369853904967363128007846723367218385851757542707558005688786869185754419584930735085644242314684929448433279123836803036153870809605905121130362514547671177346228733136116685532859464508853255264288235277640553114609164522016371903719081624964476831022550172100564599309948836822474388910929218079985536080407337014709618731556146460269355770607851358082047056137567623188954733595066537638396035526727893181104486475694234794245973089402560016403657606850879299873562889955356956727477640063565512457303207079386135538891260817218529258964709085489241816098000439110269690195929377187994349590426474907055519712910594177375821463874810780350149543345547160373575110736358190199887240704673384676522037577509831461871889660856110305466074697276952588746356026198176045703919807086547506087523167396007891083895396397534913078833285033705227420458393187392945676487077313873054934272548894933196415530805898388854653879565294335016985548036971240020206330597184578106429872050860637138650779433206603398269110351327759450417211916442482345985109305941727122783632175206927914540687861829348456230417164236264346040767591813076712659964104780466810960089864118521737141910203935388606966633208536328219334058070213223197907147852780890869037810248627564161659327727287664829020149143912751636987109948248282077913359040199437662326862681294055043715112754335095904223644748539864038843076505101162513061773766231778434418427039155001621744437368180606653679429857483197333354543997721706643082224570223671384619411981465681109383758926490160293959324281170143989406923530897200173208112301904895928544803092720398522544339891731118544040621223042413167240322610562146114041137370142513887388513759048774232165627331301154942475483946106702441838018960322136662478205446500536234910044984177224326795962395584157259491992032815943327247668422271911879006159884771298126239775194450081201720438859700725342794072860219542994003109701701211531840125665660057606657350484722590040701187407181741591525041748777205717633600871325688308381520963846668282563677078177420489692782651569307527014958261442114768468028968242726461157694806814831347880470627133194837796444172733348959389248080911820325707754471995217552929561878772292009009873814815002260447216674376540393335015284280421167412773748297366749455532935421088942402151660400245409429547772603915839359976739769974474243734713955060145856003579792455005202965780568390020174873791846245478448298571048637310560517414868647676819786951017172370458269923979616792234388423279764515277007060300128787576338158526795081835357039179907191401848193491789805003139152833154460338799645651861937780657743110086881486238583458276288972287883513340427483976749996570908732374761482047816104315767952945594289808934722461974916131456093534156376543685245016675301857031062859959038252196054330400834879822068697403956904939099295782713853516260057347064740135946817068608590415345314248529426824751214089668546758818157880780136566708335320325666713777704863057874006212865555455907549868455631039243922706532898805252686589085713648671608905287125800583095914083341010678477887455538087516186468808679989933128920059280525392126025907814249755634940518286103371016507676192452057758325998623313438143716896092346146263518601278116746759645441925949225845230126187327552748600285554374984060960625756455486502307470685586306711111059210218605509720667962240528953508297150855119244171412417933202627887908992721845506583849264536254345060136232039404334538068039851145785821353356259402551354783954509102658438759911458210238603492107699405846768639917080245168561562443031598901336376281318722597406132857307657512920500655295929848349325473395099686461480681566709019144722025227922881725507398639622636247891086961360386776039854728764084251845264318240459740089075696036894282800557050099972508998503942815503012825570004852392298328114922780463591920517485271958590252130399954773071617239283750294075107213068847698552118004096862845049460379545524882209762825709134328733042317782321378937720846726302491713509910242363867604431661871229052411236548516729956910848767385950297891328475852419796219243669968470182462893069403473288084174190091279185594115260808872633468253259113675416814357812430151131246851629195104860935756218222174895063409242550450275324646163291447300472966194566082374043288025026850293905374956580808940106997252836639585869587622464924566853371536099278477193833886134159946501162713178404603613951218622290499775859923518239831782760439467530497947391844703994079603164208535744488703831687854632056707113579194861968625904141798416064647266117475999236677148705520170241759167557508459006697786718355980561103161406575348333859933243132336876976198772253570339698353772452002314264846282812184014619213909118827740506147493422802446394309727478976322032210783232724520916646385940267594803932062808628301564444137379499160055487542998044435507487149403192308920139462674888054316290667082214576666885459564969107576111623738326249855427273182976187497000305702976341731782520625083571503224681882323307336554324004850906412455438942238464942353262678883255930347173241863579062521352049942214579015352892357706934845396835887719403470208519249695130829200990936390667733859714376623561126504196579436383458543311460740358533060536161680607157396989550047421992110005719195176902000389595130207448351806681716637046348061735650312050233757051704556666664423294270236885626706146120542595389811968056682833078146115497417616072567177520236129659195662912316968862037863105715796710353377652352573870028929181913512121353830115978215888268641906828400476113779185522808669199097612399697547113333347851511665144177511063226400023837964396756176167763122121883701930103906686981337284648517926203454281840844120884884955646912362404057450815539794689974098427624249055837838959530066793753826127424275090773523722628249426608755076277649287034923841670102338115624579574157783800675414331018461042974937021819476816805249925698420339031888695283612782782044725874648612590414857686637389316321330321396360410385981082668149137879562417240972598751717794476610264261196781519274040917575555027645210748903806551884921256868422976099863246893234396604738745080303939333189892502769749501327088859875641952092013519899239526121475568112781060153924391842683792798885866503304520831740019425774339881120329241688343537980050395047928831861210708321890486327698719440550213660097817708858531309646174159772434629649489741594312600238843361289891389864838091441387008099387241179729670076651820032720799752432228892452114175424249638715089119833787558172535978570626342937828877511014943760765194043317064142118537416340599773822111539395847289268244785803080027298946210735243536655222597909279781390981670634427869300594483653381040182774724463966821735321066980945673632320944241877905668908019619096411525911569042175566089391917932162002392730156232823581724661013231708579780537371535260847528893735362829135430104002266169087244813529777626082555931071200714097783179772513075530201141514842502744086489422885824167262246520363823952484426204564044871927088253622763854731736056624065231350001534588363270344495740952296648271896067707885608321672036888436388599294917909796079687584688715649608055080098152150332609546588623900769254759121458992686565770754045101005789691751512023049654018929144755621963678919226682493177856464506681831968634774382328407736815507267140577565128783749398847005481706760044245828033996094320444882110224486232991012088609504500162217929405625800193036712526622984187847728446462214556230262457227583846962818161291888499592961883742838917220685146719671102105434928924599065438541622835316930590700784252368997160919942365867058106601763338384883302963250876581914774509498041005151389841833754811167323826602665262621979963348648680346225621432291217938467392169019466356214419373073078003653635706526175175811035395659999508962199740759897543615733167390133585301003757316828415786501764213776260854947520237112545424952620503294974196024758540859992415271421367675980493644624318879921261909343548784532163628737546043391180684474414038959123165553727900999162696453469964200955030553419696588669906568605047391882764102024856347034866560041358490945314274236217838204898847492723912048733569104888992380348785086990116737985527276101253519409053829926761535867402795012392355503218476103663297111562746909058433973642230883184759844441338505051978191396912207461569149904326713153424142565411201501579928434276457488801389916040782502874983652484930547658316892847572764196596265214928292212917551289676348055604110721904930384142185952501381579637095242832516328947538015575253402626268255156853546982574663111138781866837518475800122742081349970999410985666666409028841766678968709636069571688426760327828350098622064253974003965388179612984385444441778609327234641893581858603340405562060477236271640807587362730709696865937574298028469953242860112478813727873580503986451886902921842318376900895147007431191247109238883864023448264849503909915711262658386026742457255041915251401912726868684067411632872744317793192201151244119746992618696027881395581373599835214224363360139800973981821001416140705246355188380437558161767951009054482941461851937771244916767364860586020652838951647173311066108041939544069881264080266204102309486913705803305255939607487383360070540144204260551971769716222435413151566579679571577197869615635876612711355582992946929519443687851870157068819593569918520115171984966022692811120805620479387912385571371473207117780982492100686860779558464191498618907551483890843572205215936074001315953855216057749372914316847279855156033633303055325297901678005503979534764012494030384788008258667996657568143722004439423357495555550462294364177676819210442780088463424607155596912791565867870803968398516382045636993908924329094657724582184388073473767306746959739090738132100976101719791139868922688696805678918449949427995289073904098352792689192362093037869313756548340766908542907124346555520322465902604439302465640009460676945564284107061532842301614220004959321860973689619413142965384037013782411562541517502799057826325146439628478895424040795779936827033539048054124058162075800070481159630669865430956762986491890988076347247086012701981840071591853764866133465910522892947543636656350459898640555586263165884925356979050179955141603625843715798912476959795735763284434317412531469234292419179645540423069182443971124332900443722589112899841761982036488908919731893099853327239994922029409204757819932985566785105980315662316376626598953137662361744361703539845616250688933607787451174325824700694030373791687567470509642079647742118599613934267045606710229709832974539140564135378199164875825864013927311180698807283353824749211275516977332325971457719252875618536906434439011535408276729810089890165424177375324042937039074768107960946463523245766637649669398099302579989275380103151960889497895404692225553073432687926225479105106145978584212655591973895534301577613175904902864215395306772231609091079358569486267599433864800470460164642571788395841334934535305427438097916791880456840073455690150763720228778786081058997586798583515650150046175239771406665307130670300654486713443222321345526804429454839610222840393696442233563637121851348923554345535747797345652923440794058007948573068180140779370261457406355879932219723242430593344167707766956177620765259725651594869952269359979978945202649232578758495708114294053857464381531107231428929887161474723171117457522376279513166711105431924820009289899452295305432952097003920113200230018724389453542098256040229895550871636165779027087583504806968261547469238774304522928637577619717044585562603927112309823285985889248953798580820063198947657938221794640082325847267798077751619778358127302540913419148308266434102779541163439776426521603506541416256762775724092526613673165409278328395786661776337343508527427085323515075459752930909847941346318363814660635128110254120187529238825295536992480926859680570665728921609662263484599896166545057238352484622757578615251281776993625953491777110252076769837237200827145886901218493073990183546723780887772083556623331558206432767791847516474190270314866590665028480312794419848496965167079304644789947722911431213186504935392496213268754783866789439839766423123608882992098196773207321514932465505828986554673931925988344524063711984013508598374250482377588347848025300107360829902778583587275564025448147217846100503923153802392056689402575096495806292268326869797835411415389470217634278841958104261963104055396927624472842804991348800065329046934667938196896643016226415437423815561673291294201892053808995090765110244784657219592394337926577173379879404756785618529614305272370896414911568827851341677128369236630588705751343858836679014193275029315627846457944209593400700272934355124180249579588766894084951737140944729848350217405590958371068617220519563291003727869948789551258658343193629078730473496862853903176382002332802491198074506795600559893143200906087923147775521255807117117346520162090656728347025199570075134321444625447197137612729011669917386428457388937424569428828210038524310066748912878212245905074106740185597365712824820683368437793903315852704854237333357841033591790459944745336910886465951812061716583830279759359284785262793475822435187551248887475551995693050313971422136537605491338481881982536573315329897051864069646206094635781836912720859131342818404587115508885674602450921260761062869589474287794174251945263577214403576358969517620959088380971160292051242447918080580944984101691861042066177348490812150652068907680754306649513984933818460644688721131095446198364822624226828591417870448769292882419217377338109563499178637363677695550401066131932183093367190569964222738816685092032674488112620311191324447184438993576713730658419027806525827630058861469813703218159254107984677084553702276663459277552400474204170833770962355313989895128104515493049644587687688096573945329975933320181838570207335887498263344163693519993191391517538558039397606197620309632001543417449824272098580171425701946933558690494327203377960552250357379907327667848163945209795196763629956681079868168129190353409578952225190879824925326134007696936221661763958585216621596580826144755565819083634419775672477273832859976429832327211323748398519453569068246755356653260300578332519048140495655176853269323832283257630036431047424855539602291709205730185740320394077411187388959861654532035244893858935881909536573586467269400138442006203116008087996277339884063479432294067928877468334390884032953561752122128657105243703976411360895892956929809315227950038471265431194694023274963710596567563854910495616114265902673794047625059111957677191619435336436816783096105214037900217343789829815774047211346981056155575722514251150411638148670982853279740278622183487980052168814587899067878156104667010773677736258769163482909009225273423291111947975291844085412136004489777221507011521869270353245978270946793245593444747540608366126153206301723734206224444174348548019569838694414440522937367789836672243287053417275133261664313077803922322698640497765102025958348662821707641816086035621059065404078632781875989815567727106170269549944198480068238628981089721163515457281575692802427547058759345085798952409921091228277411907540330365114715013011940175277332072432038756971719970822952612568812238935382178081648490219953572305390578393873949134702729394675933916067307090946795180400487048608751573610214014165616165943585444995014753776693201589845105704489770028045326890068358130246745427489667892873087430142607425050647910840175773835968538751836200989899314125143341737378616973070700603495453651159620489694710260106017197080161242151670433215319648260470926746726844315635965103494657206898108863104489756152067996973067654772585842681974335745440121261802648701528247075816915334641123882396220307233722933970851676628127715106879591665197190044182219376649943700376474594380458463586040430869842033377884022295249569972808870707534845191259215254086814391871608833779666353877641280238146748077740162021169783397162807948702187864183002778127991744562322215501485808846449824518813071409376153527541795384991703875232393069373800522674138581777875345416200244086671296832925679483036749086725789622091759622834967005069704099652543540571724604285973530466238921331287509787681398919381989911029584281308712648706110292693086237864656068305686319683953804343670904898411742787210132601305572491477053839300998575876704948294533188608347811399013973215462929154859585794123329165555394420575396200839224133349675761138619223622146326368777612343503917091419425784436544368205023735515649882251084682411037956692781598062417608701614793110715599036387120576448104394944054965450602987337011689624401167574184417768461445309759619427565824099645453143546498524176278798951058480156337560990502298517631048303250039943662389993389541981148619454661088275866535174746827087460363378618935085019034389023669663858866721317230582826916212588322937228526315653798147170013783725428865881559045985481957609219359307272670888614291338839687799467077532874694479504374160369245898057380814872682708448525520286455916302644892794993847689965371923010943133273138779081474248966040250250444705449089463192154853010057539291362265811274917703463531756976565471078035743386720578437423137106446749984296234408027101810866905518866812362265443562779603468246500771385307588910051916461275229646545768145829988041671164281618903701071032051636588794978639702549491118167047237628168733567739744747656968486091197976083112133536670648931016668990793677054418244762081472912389803518733411730463721527122840975510829835500685306353384713969044575742318032997875833988396828315778019832791156043953074563973866075180591733969021045316888020363560232865793283829148477948391650604468585259814291759024796284482250307525264096110473070697585393211522546509565409861393099321729823057441021738848981444575380156467448975554533927610189700028822731731466379885620524214110448702541140920138634603327135050030823436020653825580231314004004663788621692733959459250094089542108793564345707217334012003649095489409300081440429561176646195285538813195836835012006659902251973133267248034749601055551132960288992602808847331818315023174823825972066780250762810318418826641155552878881568257092682566534761932930991469862345256646524125158696602155447877287123349894702248213152239515044242831776791648983364778813351539655730642341130468908899955435513631418191752405138389707273458190584238253043355086607640409136573101632431130070706189540792580266363565376632118515090917616480303997920093440469089969338260036031079596038576634296300527880650851995021236068320901836241624053191922757890320112118527370421933329627082785032517526821486868892223881456311650052016494229368442016064412925161691992634824842021414928257128368943321599585615088279930485813621051571590397372548596218333941804901406038289679575125893519032911447586480499155274824439157169140353586638932599364913207306470365435766131290186803845018735464704731332027360335642522720581047013458987880510801997403308575871093993063990630572864289983516906959941234744927404160104072037828036147287048236911648446751048049525564770941301629465402815413399438138870759501900059860790616834453675927161723879802528620695781439842571147640124770802292242120058567404110247072085483711147545860610623189598629698878213217052078116522738026189252893744628417717965680799512148343451818929507075742013638383285603115301199085931161743225776525532183223451687240246086264309325690701120283993589609921862959727569142403712292047014906503369226299367411827379698893243880673296384926002018534321227710222814906403371953117346529947304405298890777909703500671594454599258553698526809840695645995713088010112110726839915430696067199267393023351261486775503778752252410190590691809849817447848996596135653197953487545488880486152206639713532887160385330143575413856785216094025002453941635182384164113831251633415968949219847247558426268609096489862916132769289669370640709988435794769709869912441419455613179444554637767645807393296090702394809552030234281028034165420335222266154950893936226329330436522894175298915254746956514234468029181793814595036695482576956624340360453102331886383283922765759978117419582861846908677138911635772539605046901370446254756503533344375755335932999964861254054620976249640299051969043882694088459161270189472006986865290064516898667199529890270781030393247100478067367885778136954021910227707691746331555723960716052400463118704896355145583017364817314848575593354101886721651993640764616413904262687834376481874941779475793747967243108214104263738979464428392443878753949139290060388399603824264439706840694247565633622348593460976535812394830188844072193349350364871141415601484443568995744127825796210007263045596624192484434586942147115551740248464462497249948770720477265635784430318185841059262115590007119230109942789696988007914018996293435417876723099671054199216743620059215536766480929529659243261977679402855033391503246486578672026859843150992380838286601570089556593503672959102341949361789814084342634548032470060027423971079311337365534212684528363611664244997754389703220087930931407693591403090374174571207424756054005992082553983261806918475809630779914805970635281953322171517795090018087157959389722053542792958300171459008091172003333545532299073887200381147433072552373256419677030102508737064280617881738267971251144695484226098268455180292510910469689824253457034255249581634419382919421560927511410975369261074821291580844580618375573801883152128883927899608716486514503604636701359235662086455974971656331650439689813476002479103100314874787028669748270663838807049791398175668300021181806906213676374589218484856263815125539309332121151658884402774152864840116202407100761757344574850978441407430546250687201132772074079781629756213211785901320638192378578753056964232439045441153460611272779111682966930883965451522589560946290850294696695737702373470099882139122457602852470185710238776810434635822556684420556190922285062624736294574418108655792518391460959852107292265783761705273216024322624331722916969059246425655665862529377020208860704155039692284456521026225687210013299683774375256129787507396861052129454297966382386515117000121116916391504832953622283862023609638584792268895042885036810592127322799240007869238090476306673735204787334111253505327515201550021806781384410409592886517436366242541459043987646697068494457776351157401732416945362329076653552286326456815552243892785265655880507320283565850376281531796270548064318737544785866297064036429406236972720723166206764545519420673864218226715862189501367643227744711156913336914397484579948858080832846056373309244208898654732917159337724839275608772716384165377207168284399245579662395903461126660523679226638434711679329533139512930142932634272677714241113653614137031031767761484522843613713855285714025064117775261834080561244051149344695846718550831971426028118813407342089066361032194152914634012533651950243176471710132208670263731301204793100630385233648727837211441108206307331247640628374214926553976106617232886142252428122855212465172098001756020493903520381605794711273516939930123127396175277217540948457228724228981056687906908665420500217280113006924008721230210668780380187240562397216523901026398782150045641326735815419193963174633302124161004010318673400538061438018383937299342204213075124116762560294804816908685782097236535101923370383720347652924260932887424160559123867291874655304381991226957177239157048001290320564026294195313792769828196783794730889949828917224594240457233502075191239308761355676334666528910618952081824079215960707499907488879892262695905282730245160077693508648212922212129015842799238284625108876690636832719351213831775128410317237086772753838876963718286229045767128901056955648918100200108289473800081861444786857598037545320830180113744463468183213565340401294755332484628114947121390024225953246306005651719816415294202386783814071778801258007639804400706216622037258718441236902694214110935789486478653482845417535670879593537975672681360472042985608449779705375445998668121458795710237005594642088680265991263911573239974552468190850089669993934550333634067560957878003152479715697082322829798325845442617239191721137724285215660521028931220649512022455652881828376100154052718891033802801306547343308987932801367810582056623307405922045440558536983276580220545534996079955044582836344169403287141562583374871074460850056959555091808354268591066494832679163640889124557554713835064380124731528335737226788975698607031516048091946606392026263601656458561909738573538761375470057386417689073221220075577204529462950864080696939468227239697161741384628820451991546093918841687634742274132292854368205956247729795139854150868311811074219762757278952237305824836246878941869010481840157657948548940538756920377016483919741656388175141347062611131223957997415045007650777412685680966395540587096193877402524439838748816546328734882806409034826989764972275683657730667356570848833789314035992419378313179986710424882073833298751987999295759322231035325206577262334782752921335050900118988647230439152654171289608431078054776969118276258736076484521638723758426561984518782465078814753483970255030589145147244624269142272021588386069544270302834359698019797029328110957300515673575270171169045396672415208387544569863604447322446961647159325024560769155837498061846081850005925712423313396974568716106875002929985763288319842208002185413547515128975295147160367656712136415387663598856142773414524498767044112706935297648995570654450448383757149119634285120247685808571503583630845434478152166782914453727157012620394321229319446153124764896879646896828963341141128333290915314007922818704637655655357725258475725576549063983571784309511160171869182753400181128635151331738075554606139776035866403104470475134381272558708094672523740679075873596567785884217389079782148269160444510038039993041618853860979470085840753299313587926478029000985952566919974574823607451051736971963003150499563996306952558052331422478740115462270695380058111950192626027714997265282683972144086040182720827110706111580509749162821885923552236154663117306437971468567724977373082363146766874628625356324260099035023554296942776797936374795016379591710469626098849816693070835828258773404553001045949355179604298659506704190892010126258057686954494372208708721739003872072882460576638607737488562325622108427462832571703198885446233558327638656171828355258499513132541929771919696037664779651619878280716212852723006412632183535013076462504333111933121126566037488688288996444227540167314126052830719621000346043109933538300413557263416524803762176532893008067510352196963374080466246181989635913197292704404932195565126096932466150199628673704272245781495722830928428027194059439437071724308017629564162497277534587356258549337048767553513942226689922092094582947059608844258575430457765301884549634716845723886068631504961888456971008983083545443070959144157583150186515190306854874527179910780992617661766194064973366341888716935945396687693484070035480065703123884908072711810410560314498570387201139210533339331938331706900651683276498785504287485232867065408732443667488787503325999290835037815806210690762351957009247628516339163781580865759711791076123079276368388762851745918768707387283073476483873405272961716987738089638338104299896605670252544985941976605913530377856331198795714828053996746755558089924562684864171955680683451813159695095159260046115689091692384602136168603722288222625886403009750635196438340691562342981602471523394614523236871323282102881515665061626494861257128235048317795594746690637640925902067959845145026052588200708109230186396417968356955794185446188251552517390444566871242340423126204177144915900466196084408340379360215678901428395688249695123227467391420259525154602201761164369821649885021544990133409223803169829628799285838963510590099543582144176846942116612723057594519933741554230645440317710070766731407120869995488505453051412703552391008938149538081518262173446028304270863925080932865692608438373353665780405132401566419964166574899617329873433595039684598009998247525114761760208436244402925364328718483284771215601065448053677554533473220254727969789188050813600635960023211931148836190162269611077844578899790008466899875480454074557657266564603633178356480450092101606623262255856759159234227769172079083734976305065257564699114436485102198907016643087845268770713282082945909009718915112392556143013762576892327096096277059901137549520174666720953893242736832708951334814170807411391599672594896658967372610089246645645179562508396142360620500664413677140822889485076313773648587585289082525969461906678582443404547356706046855255966607295617966979159853532746060999869404563159284183895365715459685239293978331459828545009890121511270737502733146239597399306888298780078929275646745473641423261611233869591129208981240944686953646362184259103803245291009991926880182269510445412863789685038515996938543436833076315455185180585903103393489658476298033815306361080191121380857000389729752298813338634198956885941751364202362506827560974326160025696302514277574496051786925055628862805547171367904817669167106133077938807733843371426258566547267288273436603840689618466914909641414111977457100905860207296876856630413476489059107951606455360238074625425617177613826614794458825233573046419026201721930027325643275947564404426770557374480995463775122649779093910886232555521708985711317894877557214567353160617100702738213686843401406711586613570333769263518294458395624600996671283041325926622415801854633309157871729849586105812067844844878555333627992701273073781370748630062965974854036612597614086077846461139989634431165626579778295475832064453250174890087314451739274884906061908014601480324814312558785141236133970174805640445013560054157043894586504028066244132206308576029286919977080667974740011619173439335842329520659914847018060128269268828775934129546766652563354203028112905916663656514221455426390780506466670184977602053532357285767346980097097519500104159927974535398870972710393553617594899940016794632173052434159360903814495185650789953387074325295014972777542202121917455503369476704775856646231608651523172360457568095266004992654913103256722758891660045445800997981956839659050995298314023659212709590001453706894410835301609560905486976437454092954445978427230049489826599389173052880079912589061373800249588358275374113957108905999343902655794465989205296456083161325013390804159555027708971090165990230429459795929088450471443413295401245256246548938059182829088717175260693682851192190765718299856577114329163880053041498119140291023890075047134673850755810854040873806620432087325904472208308925259280355002109747738107442863364984957461488592439195127729271626162304038307508835502045377012482133523816793113030748612109672683423911804412767076959038786112876582005779064193655448811543564990907553991823454884435871656321231604142319552648493522183678672527705163583298191766840047712495095816810999430498992621938265291047314509983418709701099640323603961113841828338788913737475679855104727374663042810422585110216126055409053384450174390455559123676162671605612788898460956230737755493368651552104168663278989913019778298073646996353897588161701706477398277899828409636500940087359379450545123842268909945440459491768435551690784102265643230792477473952111517649826729007284360719390262374544347484670454328730452653059642018182054369818157268730959609683531239475403452501020730374022637329801273013515609048410284011417317967952983533244869890745842600536246664928758479381519220175799366540648625995824914407016651427144198569600385243805643817307718140319618292462613720728548247546265958154386098134253274351027607875476225624846031814711317468876137433833526968318733630765354173301702400068370629675324400614287350769605590166486410910235454287132620515598546447713480631514586369349531585894363007395192885466336739857217498243164150299545699906656591823282943649596273174656106192070218710031024816143745441144426423088101991346359079779062503836029156301816977292140418041811735334712684960271071934682530442916662000809959133574466383339723041339206302751915190012573175436998800715537533333055250226234170647238367533310007358862065370776927052717877981238233483025981589746221832341626124594519584062309020663749211548648286998501535072739488342062814878479587408517066252006359335842626977135472845410594028057035960392117579059970714353417813049222954769258107827234296507830611741684293653249374545332886250062314651286075327305991125549458561630433178168360936601984714121518754106528898011490838156375957714388369361071529561719245734152448923953795173861936966188873761676265883217134058849472019611668698593816635917735308477035478453738726680980524380743167340146824175890416562730659207406664445782699536685683603432101469961769871718849335094671126540048633597086788106968608062552961622183142006774953099239569515048983277119090688234302572652722677143896678856195299525642187366465565443808364841562365468051853607702209232957094696444606988165289630965762658196541695963689291658233449181603883271826406538412520749385398562568492529878994367744913524408902308224549823952623090816825155860799449041336073542982222335690564365882331994393275779259510788785301051693891966211847600960378208254928192925415777236002564015459393349228799634923893343342702832283098661612936229395899426454516239693588239721211936338507737510603769893265309300557523987637826791997897330002398862474008564502893416506146122779038802786731388401004129273758073926651839741577909133628592343369743700279099366287334912274955984556569114344571577124531016619791430659571866381317059080569052456975316559518897787188491080200800169731298783032461991985821318694621493959915792276873212596991145927896914548760279677013256710161223062176346782609701647334680084979478692986137708771375980907427522438914017361298525654048371704553194791889910151426690854983144553348180515436042974891358350783550255660402999654931877522839729420338463319633320771812621062429622672274658976700134724828883305109065745102572740481991734065734281668904792667999724027089521497827680323128065426896352148677632357841655983986588388950733999167973342444792538653446103626994396634647535915377678097878290947489146565356942705304296857740551145545164658040185324900419112067645111698569814251238962265409477066326189412791582262252922770980247457098723469826227035014238247253575038163317667626859642709836637380478473438884078044789192737009146957959889681933334417054422986523930576988448071990242709153368670628301121028315954669004040254612288316627743822553015614121921649739421384423508298843555259715702992153599427645720013443324469675234983855617988706809457430854408615512696308357665394045543646871956649423340721055973665909980489584008060559018998711652822330678422323588182426194746999837146815998526867611177529454802110191227666439544250313149192773308572242877906910142528126118520713104634054122980154528288699108413702215064003611120980547373940478252484060495141853076008340771178309347387039970587061245481818082318643878408359274632727624028164273826849685870752221040750272594446639047182725432465092883074908609756262746144564514017353590529145680169967787944952878831234565176164273004537838390376365316402092312192733630217677942359757989876848005351395589297585984135166071554693985639405746183384954571049767641971534768347141317420766505781894161470019652476355838417974994189255362428995982573729578539449445800803267936717884071140072827490803419094927164391273892009777124705733000326220074961204466043739864586035393240866717901601583251439350052663003073588619751482986703423088992148729495465979048111927209244480455234833769215124974992314502419587157766597549996580800060557379042406413757077677367455469066495932829531074085591607341006587197244286063896662488106797065275288680916509960661888742883730173268981614911511692016003756771608479066492962084419798465108958116791465391058935688751407784588708794968444359422055944912958685672494954078147298894168559083274418758500745050853710548455437761483230567928284797884624157463185187815754034261066628186939887789526831184579746961687483579148541836105302753022780121961910249856655178853378744014941392597258371490077106750259557721713754278439053291703459405960299835713322910429729626766665423332706478468612070130143788612754836533982280713093325483964136472689424793652084493148604599897813406432351712873806433959835532036916967557886911386045629422929706966381711998191864327278287817982647743704806905943938204996825835274808169847566078890113497586892877504671120446793452000969080797219928050216045267514271429261204615656682645577054988867299727728009159027416460804430634442722779817258237157323905965066286744000761734796546276336854723008822418964574822932469138038665800410276316280916041504783527501517569647954402778628404393024150508068329849039247250686329569400602398653928625719655480302500837067433312534222696210104932050348945576792171075700349219747393184023918309910869481635943112204483600190147545745119685641371750547260449744940236078914630528199109854668342297819980149861850224036327070763886284283352099076043327597342183354028383241452359831948572880460759925695620824064942334462651712889962918871320471930825153279836167620795076845384296957899800042163927639481176032751064074807783323408209989499575353334776098740145130727481792178930380235202808157602620159254722856830036718701039057378116932312203159786533475281816931528939461193608251043440351574469912944988782754974560781319076452764408452787673674426656825421872674308090340507740748582367317090974911594032093296693767131958917041280665953869649319383002034663921651082806635940147517301134319220894730598252312379370698847537015983655725821359935500683213948254220647238977847181857607848700700278873110027123955385822876405818749362817779526699648909243723520610555840718353264127040720720764757965825606958351428270895383738998638736404110889995143622308609907150927089210666309707322883572890449953748947539591150227469989998780854381159468744979788478768974713731922522526720253555774471140852593041768711775632127209056873380866380032416505937902874326855582391476841164726976174670384407394118093817681033796729721408499950616573980826213543235683640031502403451728840603498650881279168220378501943184751679900317015953190407240855686935302039969019275715223687468536210163735542438585754074890193754356857936789916088523172145667182245272267108237578416296266660030639414886881479526527765371455582954865742829111776249626363929189074874740935233944237425426122090619005974556566430956488783093339562992809159121291447679886675891619768573266698129692000749666917233851180700340525774346124746779834928354143658152698691177463896865213294554439259746318770861400837106002294293065150494526440895758217873280222884127967659535460373936485292915233166383419577507437652590228047171339071124423087397155214549179074917349354043594923274072766357557706380707414698340098478339700072961497335504509765363228406994263893589237860329639685311603310483528084446849797397383440522638390158783809301343443125632876698762634582814142246159205401265726409986918072811705330044723167773876586254697385773583215629629919786545582417811696300777242506598510087472037192037455237439206819412160711957239145243259316017483318627661037414078012124175223120694039868937350377948363075551799670257113471363096890942562481725508572245097417404974449263229880586789143959023036709548420004551586626862231789130254193757783687151104126171566148733693376808028147909965892738577015095261446867811301848779552093155538267353585649669089653991219624621087982916965729023376543749249517822679038151975406782543723714064616370338787655922300877290925486340806425767121206787103289759950426488506759531463559573930631950434763950580589644107400451418871510139354975664787273062737468498948100447476862692461132729601000087871115615072582351555650877364412156541640238079194887223346706375774179891243160268212118669895709766469374470707243015959178666912062578080111213547468538085451657415857232719790638395558008646110949342679501855980591747410510482346184002375770472467526483438307310662956231939048605416563730832763037797325248752657809312875407357639063356905971232405591025003322328738379248085670590509440890938117648445650317842419158405026577074544866343805933748730857943182081214172652300686701775487159321652002545151806467263986530317635889067399305009090691722115145374048412572208620210744028845858570447866663263338838514567146605720890913452790823126173690807975298177178277479933431854174458713035745846839941149122034590742398240183047158079232985583302403172970672593360621229986434291476343042609398132818412481133893732016318742965133787438818344879434014641189842803512980617693812793101829594554963379375640278848583434097965701019446604131019711963099096700395860226916880361589305529538645595555619655320772970198722289863845922893320798094120837672177821013092034724340248883299191911106270844641754594528693824490206840694918601266191406689527543508820963755274026140537169446413660912616121437265815360709741249068214191285361340005079292816791437528682467707334563860672800942342444073502601409572405293324083271441070519708077209047102982881029844351668907333305749206519254299376786827062126895321275492606211337203729670423447277968998469375457099330365918064081826462226135497772683875914194101312313787903824080074787334076431104791304169044676959274308842192633042838127704822557364989905093033030821706983421984387475378471524482735639279174793578408896098340763615702142608906184670463526172583362965928676860193151302234465370994357786995262351432301402138428118676706687832306608929398216076437398890111930761177621952503910151684610056000705587187747618126911837825912306044056254063472931228848483736327586394026532161410484282354171882088124337174273384695980705332562250810899189340880840453496625204761232180221722545436858096516882172368252653768308801950266695267290240910968647596761424719818789024100209146563845058410290891395002219496673547705959070099969193270194496929967363890462767502159762590792303707641426014329127759224002111240785539858072763105077608759297712495169220357555075697006384602215777031102479614424621504476076648119782153237090465424651568682163755626418239697950851744424807745696653054781724225169557834341255725730330221564216041445091084377512464097819454892081698056564097086622072926666665189472330530694698336630897123467820734168743435034492350650984090008337911536152369991022095999475204741709515174371417348854091038589995831208691132332165002828409252160256667975582640766845087150870796479320417633364962939892548572965958187732155411610801998892888237401833648140032474900401262268813539564435642868202271279252966484314614831600579186782256227944743387833204282573458727775969766219567393989818874274121571335396583662287580580965721510859918024821744112362208425195758302175453925679480299344610430274316333255744654502637194792223825659071742074109011194536793303879230120947014925445462099580542834694050549483344479772972719418346194898555980669620142429815344217146616257266513014698369340273226222794187025129562946196515691568969883725377435123184213854284416039226252262382949102947724121156141773470935317257558857595990175105894099842881993389711497765183125770077238994120641916531612241765447396893895547621241282713152718539426617970664710947782207360235522177277841044290644061949913528855341753397661804642969426039756625669850885035499208033041438620200284565103237935103313863860647340029173827526778466968038726994496721221577805895366072947728372902257660407173126479604158269846725596436982411974087794250615518450833721958294147889056394078415332618680784262250652323307578998453429913649152269201908974245929948567284620343101132304986525287502848445905593608608479555165574373558081857406588669644702747218468296337459763070446454017271631229683189102621129218113249600718482384433036118287687187223473288436166724278848464931588034167142359396422390356410181164941341836975434779539674506594455209732085253185164482934434709700569871024591558337678896129976839399736722875308194168434684785896919019149510541500483307316806394130223081005945526048015927586814895836987122587469172389299434833604742084125171627226953588006114037517988957024735623795099576754513137650656071701492216270817521279422263292870399168110165960904577905642855127781574209514924436527586928785132007586974391669030370116596850357961742653545566578030553328294346989592922293711720359326760164110307234348868608985596046606538425538866803453697969131894027274445884798590942466065945159640206025145289030481935144778247636162627335499495016876190722193642887511356424758856493485092073454482652287552737031835932357850491998462220975835892240390916329190358263650231500011097749654023877083805487262961937721459828624882490751703006415654799261481843139758155896189497430399872064217615048438051542815379481805457476760770998692139479491520665616159035264681113983219978988746089555273720354966404771766167244248175365160923100163438496024890129026337574915024936197222678017224866222468655652093984729403874517349502252335226498817199028670262814493371814709678828261345963796297379198711234525202008816695950735321978925585166836909702890060127291140750508415494632916657111562068052027176284396499537149025124173899399239266887020508006652408620005346879004599032332246385738004791617070218146163093044732546771556929311126137499167754209642636529363804598507231822156055916004940557629783309364901178476310146125014119711371055606562533071982599019147302322825581499861650218422290967588035775268001992229119976549264980599829452406180880140235150390915431373897643886506837908531218469429826505152712579169726618767538032414883340298447935164069141026817728494837612927280153030485763821074564181809192945755690769298149197796830011583007667773041265216669139907687955577925730293977712924571482135538974771960357727475393164754273313518586102462783575295079510755200574265321641253400653455729644580256809967001847205210971912360657784232455188101933526771086736470797893951769999481397749235217434379922352852703822280138282997580150035289757354641352731251756509853024287932589430948549455704836271252814680702783576375272017082586206059291218028764751272985937310089570321714688616340095786999878760813593563823530934770763395630519293771537046257366245304254119075665391613771569078565640608826159279208139169719140700672841499378009083898062606565161274309273866158156690369610446629672053986110142157553869937574753341506693038340139488655621209848309665553819984052804069019805277116620201621492780560505865067539135383235491047321265805295372563482980440821025031977686228374336063297330593365780684186442108640603514984003600842749924233018461497594939692514049134833660746716383972210506623345537394488943508841178938888832809886528646330142481558519964163166468291534321208323304917580952800177213368244103076404038750142161674728180514612209310326820533035705619954523504870034496103859246552701476503610352815109898331400834476680631408745467755669773955661728032352058743661734601723845778209432573211106361135988359831686717722295724137552469080371692298549399317828895653961439175136194744688044197823022389230128947016079006788483444507594585382765061226960532561168774464027480898053521688634868477586690067160987115150508355589051167515928590266316456325963736282448969788445537787534461758834534259232223026541119786318052019306570205500650022775651470861577123375187650784948361147467274847040795536255158996021521783977536044856783858760294505952669560132928670550499612083049468221748276140224229587059413304667726030582234031452720655426872550603512701609524534773730203723260872056740365808483814087720862958138932107135567168734724951122599407833549832215967865153132464603895205058003616837629301734803539011388781250515091734080516513471295283848468056441090556038075951932591553322703336556594631832600023357914142150458489561339644422887276415282705271317025765740484501127269739181991853272060418548108679664450051702896777074253396937608848860586035425473807382865081374456059648787112995480754639490302310880187093111841702757078386939584444784761493075809369598497198018087631391827464555517196123423210161053499257404331989349064033468628717634754793043069802471572280516883228012779827555372517969244609158596760570815500023872216125604050449564344185422174895087360585787129468576276420608900164318194830708613979807509166626627622858329503147368245812067682748382787954654172157164975645175904195341320473998471166537498052241225234303884242059708365038902137415274014846759807408829022848791854978578345406710229468186415877162189546181463697550372153508697092935790619989988507277023217945562982338037389848230153802786410206277311779924010824698617529319671027208215304221635108933227787456586638879126949244481031848499267293679692897743042384290910202002202619434329257565895014700773770582432601702510127251934777610347657865922297061149779051127775933867440662496824613013007439627924857948837431695261880884833069505904469232105342664528656699956585631304132812025584552501688981375375713255292242693790666507970065702834097550836693561225275077897394161388383662785208455180256657547571871160107678838740132673693307467709006582141423293401711000253805314765054068040246148991560259171851347327156296634591455692418241477180765653009911947583794850650382445500910595821852779955060561480885337473682649593354555693079427443503986754494945973042992465866126044394200865368637640697523867506247199765527790972880404457782868658966388483704315171722834823248794742637921056340180445229200310679501762246259183072637834465162017152666755045123977379531233920803047757183264240441594303804696896031411415890592364446544722648311816324991188783160551757550983866998320089063808852241058206961592579916130338378005320597715608620686579771401159270640629350153853741541326159970061870366147579385557685519337660346485709738219766210594319410007380709846176982637306042241499865328422763293741617833057286102300002925954882398819354917516304907916996905502933663388491805544822868206397343844100054734847990969378372453660593937959134540597779965630282623448763241859902545304283172952795070144514877564849478147251713143825447062269656679371626082734094391600089084092858456685115192959993797469177790593278199423251459342046726313268253301291980307986676732837812783806935848545799792443533834953418306588725153071515499389132806765021148024580938909363816958156278420976510448434606219214624556692394268229097887743667707486307898285493756123035490116569885477166748862062451751057772810681505246058375455502490492632227324976342216034890442588490948959727109353339105459707708980565148821631445532026774370284927522141749260653943544100979708028581832870527204694647034278161726115793227134812430575516341910697722465913967432942674441946616826402242233454146027437224561704761434216381977569114987465320150165857832747599910828325636558111939099646291601155215565804112509184987717484287852786129356677276494640497108334683277175758799482611307452044157402955093555223137057347419895331847369055352283470468309883656290154262968948251161644723186442270144319352913098909960924489841856923596129289471186210519481401526972192670957743345513884049130014278673909168326299031720355525423094906724837657631835716979882880509620010389736557421381625070555533986942859744573672927657141757372269149707665922188263236203700403839052150328438873271164156070873267517117822372859610953543862911290657960666087800968365308972563139900387438060626175819589875266268703538929045751134390499152889064067463340119814783560454949141384465549690102164316507281250292362803395122248210413444716769167840773550813252587113163466571342155499676651049020855685396197256375223706198086735764525440170705929562697221748641613932811951865490023324729191112763459208133869989242937792705286386815356583308618089586591878127948465325690567354584471918031706619806093564670156866947100119524672128737699748645661266616122511350307523882063698821314741973359995052532505328966208578595724656065021518010726537720727733866086664815544357720092875654939229429443566874369658899202192068342193833430219530874055926704378707034970141556622385565846775723996943774269184096339944954836926354276702448904941375188260668025428336111844718177066188369702006063427878020507827168603970267454562171697412777499558826550278175650036518751841404218680267864063353879544898800418640877375552744738659447615745699417010053012486487924176300577394638815965068304660153629275663196856226975844022545548006251676749534890190769536384881133487488870944166746485295112097938969834647411337341720674972457620190132879369873142429025492590673682993497813154826738522332666431769567110544311809293993746440204882538083266943468856610718019775593699915014264171639460188386985827268456175600290271770127093427138990563921263287881501449150151368073791206972297865523769530394950037522390751320261179106888685207488080244644392667148700742864180655894829059545088900553910121600696029021182118113737780670213961958231333027678715627224030263540305789876439226850088343219723413949464088811192985848337802628031073802676434149263820105237266951651319884362983467202645564689130979022198687804954843769750294259945088381805663229488956833398390591396008033444674479945596918092734224927174741135074364572008645624175536963640072895071737342196077863084743576051102513674917512639156313609799492584133409288430942323378690710901506574244894688911910770447778700725655532493989825408294629390059970326709116289824962905876733864879053569562943631562611496319896011869451237272529001743914339318101103802720682554069228840372335708339988291938187792198114483125360584672904141442218408836513594813892403808295360988238719807096743044891917860900817755552899594235710332114567837285493490210025053084229835248338733292380174076195620722622642594192262495120300857874271157748580932801453604807046892128160891962111279314715872935704566182807697617702420273854579345058335384862000327752873321297620830359226352110890163821780963518759535007456054960170510222457373019052188146389035969294480421074854934339476142911057120075965693212019830093801818105045790986916055049130389452419569000423062101525179174671702503341318625708708494993589381400008716646735023725323451315962666232805485499760640108402943723212513845261797696277210903314635828218489185087942886166864939594251458261165390628641949121301947963971024982678377626337396724616005969732785416979785325275938455470026951567790648197691501270500873865136774976296881239347437748494019046323454896065636015065397852399939865546745999604296656639203066200474746738194855027306719838509835826952188440069944970269588655766372969908938373841484316333294026064670781613488255457782285718280088369290567059292920988343957553540115342172665656080709497432361118592490875561894443697140088618808066352881876347627611067579631978973780397420441884500117021106879536949521555323750314358617315272183717156234384870586655548014343986065663077778569394354416897338308817916413337963291813243620870310014056759762723008626829301465196601346268072717093427069662013621194677698524993137006934505422529941987853906200521747109902495799597259673842933418309802632830183236825443354338867516293055119683194865826356854727478471480913421983825530847061255544414935390169144614939773557838178439743103851718738195826892505851229754499495014883952452201700918123397844960407730625403867523861658813947493589131676646310212540545619394950577158456352904462269625198983998155443661962636206835191536513610271058816872783588614447002672439556544605974468887541880012991013963565475985218870537590027295468485062802194366091536520469471875498909881056117131746052464218801682160525733354655144720332985669075566928788601931585391961821170979806348266232205133313077500571919588772704563951723798671778030680050554310416108002092461177886456583235410549475763676369751200599631160445368818183988950270861794794982040491929323831730940064282753203321285847258012881482912801956007518681930659864515808157113490963004205654528150954678828644108696249458282362347233568371542013772505842093355280438682069196462091167116252618723902225443399225087913452593893218808241529730355927925610539441986839837775876519664557271326760419270358532454410279028117643868893655157734259469728695540727527309543896424693041547182149988831559500298445786609789841423659588376659387437658080781097539888409257130657479891542079633261207024254717089807603135887295643661100494101154091878671612943753587040256899675578329890960921931709926931446949797955986252934829663373952561792800150537786163828864604903076755589300943825296242576331780176615571491294474328420676060966145734133591479577915158254772506296725725900525994095659151317682626123878292283155359765379508481855108316847035537425062742394627947183388671651387642738908378934835790538251416044858103327525598346861464558295696717508628678376467329752622576073065340962203780200805261494655235658450093750631292554291199467438067876575354378021142277697073281522437407423832043584531231778976060032552365036108786272204847783296115334669332947437993674184963693965215401382532360406098769633122707964115936512456559048471035759229542243022138678905728573211482224516432780935676327572783482606349332601208230417245812685719825116588043047257289487084870767798819261635401337820761230921562973732165201317263191984760386658149818682849685115668694267563951888455556780722390138524332522126736810869573711574208689199547344813140164835266024327180204369369453183236577834688756479907596439063372821125970404488914165090720115651028664786160093708431595811501685573868091075936728033502572479748412533505774364720147673120921408145250609787590152758096272442088240517480981722628956675769957637481779903912620670312623017332020033137690825421315063294466359357173647652044906844936110453577136700392480589387523599353056119710250883241105301814877378273890572588047480568269404442471390309847832457731824851485414148019626029926753869841539717941861159322632763053477942025321768815582276403669026812036516300345007645217440594354906279612039936911220005899592966100360192227038124787452481234418411767277007378393673829509623720574081733139362216723557274360008035133519638234926950748769501096597361131275580348574869378431110743992405765897935522126238951579721053899661958827379237489075912333936459147405896722392334582298502823932757051346883392922765397312642911394188138552664002199415859427464398057700492855535064999830510336323866214848456989092437415141500106078515562526277952267158930771021245453410607669086787824782619564848619939010038242172546403072878120576849601274473141708200089655369067433661373731468616549627640283264694404404928846137867861849239632428755642229217645614777712312612384857462303749163652747527504611808619412263606319056331163072867742076227346242066388378101560697330833879558833007382902228606189373829979423427460079352630714064868525950755680085564067289701867986094441314527777660951056327235846950836754667837651288063268029261467274919432782736652497234083338745752338712361690977217229762400997438744034482756310631256221536721808381249413269140558966957769834899072996339344267340669053778106557527749843123550035626102827286362572554449034157314071315458483124645621754444597237673178046367281768854159698876654841452936963987948058927912149894458141550435425683305138530500259151261095604537034450973218510143226695624976777701079589380798312941149989286382161985757844333133407610021556945732249551549278388926609540008657772110035828174780066648207019433087582950137734532397119745334901713173055448263106904786740618945142511714526719122957216702272072763348361577363434510577409563323880941917500714595518309812677876790308839475275620498540557581427156842587150460516853489071933878701732839594749134592800280104236225590491945309383545248817240609362169654702198153187412614683961010659144293126691412107258608182460678265213122972424150079944620376093399567049696285565973553351767819708743621251153855869204177669723332717864290174988624916289461315265258703884694907297459216464433003662417852918399260086458529576988672226466783113396115330154393769502862948356331893746082924540885320208239920095606238029350703143535049536596212557966929386630708533760297614806184054579916492468163054124414004262728871272984370547297323364085060228778513977353994130790015697907244025826190930739746436529297527949883823699678438214547383375102115871439278036185759593251173855956202455221959508588979247665802956546989954488216891743874581352574028038294901342870014596864044691060942053033624126165833008339996585529607503937957231828463217363908685930416935514557502821553218882798785500889785666101362567624019733082324419439949894976259825056396921667576010516252084168843806250343599713066295777509421100615746963822841565709652330436843351487510105241241847702449183136191143516416695082572572542461736188174777114852474702656357502550771864741118091770494848991996297652676406631016562558549035197949049487932693637626813039240705500529080274306479119745092751330442022294201815863012676932389217680789642475901447345477812406162614703738335972493688223963665984263157636108224260094215730801565423119572927235340618519248508732481745991608126056255337374378534663457521693102543718285964879544221243715489427846856217154117124823594463241446350100914982804284540629801794658907604007393077377214106717148184644848949508437707583161448384425800096100281949065227505857876245164012815570190037342254804677285741921472210401861082946954360579640000112028069981970766720714480321889624052435327469841329281636806567007234165426138520721952240030074092578488292316125135517015127181530298716512939256198861326632285988292667078589026342765782993355044935310829050644759837688985502132442860630163969707790198072768205748017574342384350122897412565305627137961704697372695752210446702261736466574569359526344113616701720396361883264411123408090217146270082604071760559224701000789828794914682811281553157183209871169424913339793128445380682806605450910692943461190529185765087976637401813018052923632198291311151746644617547216244414654284289835421227272046156290260578627069632719012460127791049281906718360072857373295829814519482034725282373204470258853601060058953427583759683783946012169183493268936024362272589813027755158069442657379775978691771209939256398074532467112802284879791058418259275148209475540786464333900967409715345073156344082864605229133728798623299247248184005613865944186803646935870192278373590487643817579239176435240884397618791057252712531721921483689246408504694260229656219778478693064653011566951758145771408783333829645788210923495812610883391054265907006095689671564660066080149442192350515456210199935795059293045063203448354902807018540645580290933816327861563328373749459872151268681290833706441162471355098257632343499135299470713637048999944593702792090519143217490149669178070030131444883782213706746528798671662177940441757933861786236143586592428889538529783597152501589723197030476987900301021422980678594539081230762478278076792538660019857297275182415295937545276792362424571200721737847500274692768575491549207340251517678372673444849504900053443559862183568327638511629225655985660507261162649297385456198831465328477260981150477100199093973767937114199001968934494061755660026045367237667464928786008502273157103098443019766699321372335492897340788561034435091159791571535346738493072218262734302247682297220658067264864252011256271841236307715762989473104896420572831715660765494982965456950188249406701207670891396759655158538358349892847411988832187904861964471982886114074284147984517789024280728358574569487426698367245944241560445667732605390829942711592071702245048624013382426048936166485137533047196963444014948529094604845446288248429502357231929784783154598960763003693828792483799465253486935475590526107067018729151980191595535926103691035592159152713749075654531213148431374056186129735465857515202981687993896759236350335856763809380869660874350779303282783637893723716921052492944990096640935664199891974333563731237311956817537445948902255087320638753755437172726653582822163135371673516406215810913304418462337292208672712218553827247145728863423908761608400244578445905739579941932261628979638708676824308250858259536372265381877060969709381585960273646252600970162010506890231256898264649293827610763040737753960420260469755225053086586728854876510739661818544415774397340503763591217523804660560205731122024898616293063396652300339757168427255308215408005248892052471158078151854149473420809161408881547137090051873232879958827562038690966372501341621993481308661146140415189457684451770679543540545895275919139688856125173496948205134313492291123520020856159092212709103746959990420632697591603165038342738621506667896930304685008226744033694362408682457081974922034876773008249466574196638812866996062704374741674602335331313763263205132898179015662838725827757737653231911487736773456430874808429609419241591337503144108806348868914679816359583801091616871774407534021865751308952393257872230812313066845714300068571042252000359769821347069708077752325568889517018564100849756454993866690429081089741541361959900755451024001820326746619297205996372989908838771835970854833805213335290447161575321836539898580532915172968844821336016664561119075971965639255828918412956882843648801852801535294981359825254230462595647758002097074513654605855420021958083869450494076118026842389382847707461714098558979213897872743389555132448357083001289081576054205856113853792918429122015793906647508037106062448324684975632792429742523528124896905903748711615667755159789214070326895498289281811737312091285425544641049652184182438833594680598080443748823127688544254261556962813470414135992029484231834224246898595237612086580453567642511869010478408987028218867952389185823991343703102849217988120837295782656085424797601547524662102059482946435987407950136485450851755407256387420226909123851495308140235990788251055321423140157201310688129029373335229820755215950757406690608178675999386359394737377872279607829264918445298517178291817188023094358067082292607935994726966399377241220655822631705531204286876185207387885130597898663344995520723014976805600937272084693493190586552621949059885356731332252356764196200120721469110323966042647449707551203591626738843416113877003143361261134550868424333062871791259461721939761447262220376759721831795313242799954140077933529945840141572023145512795204341313299841364264211600669324365528856801022681070094939807669923657655811063664591863053861315153601498042580541525912699718423960684720223927657521864007567293999164278916561761404795132626571279378298579051649826479615153950247417918358037735494617062854113998706813530273695934037445613399690397317077934041152589122042034773591504083346075261490617539726786406657994518081091202991553388403288514896922679293190655321197072424355701905049734040411593086120935405552820062517170823168002174648030401720103961813579999483010384408804273966588325318266867884158543308346070977576360767557713392647074795515637692377246531374045359057910444778535152058115459960304787645606894902252699666301386095924714032656925112718048120181065803662025000934335480878339771852861882771130679948852989640712743653532471763321900339782758870480782459759553743551862177352567893928330479269350360506731574503905525195433616487783364694126687102584050531125963531559131120963040954359767365295218895145660732534489992202996244097123923127944825439964581557033597198959745056031733835944194303714403641849423015290534874716350263461765244266663311231245288835927673345559662664377852858491621124720521837188973953921786541974413434945304979833774432277078271855141524922958603734739880107235806052097595553891102827081844980206404631490170113705143347380560152851789132078520893208889087559875065704986683642030053971439561999817700047013123593158858734920122287903594933992085053761604261583655196653796973997092526127496794428465384605670310949117430956131324063591726492425220463376222917762517827878785350360499511197190726278885262005217697890673285565517517134515526871666089688075260325176194536415827023367189224211438457827249762029728562602682809525970024076610865942521352286396342919058592413470476694161972016681717197504741166780652213706444813897713310733176430034320003305362653070028724817637358557453001858866577746151351851672488177061221144341984466833922720259238187233276764006378605605986129486562730275196234400707060838777673660343170248125288979292478574520533767232816008951143067481789406602440595109868793222229223130567536638840103376058770824606613547692109125583918768237646074658582507980260582404139287149228364199370702635961542269124274994246196181764305400260938332370267573514547559250291621867471233769299859743018282508224327987047837582316653885168474047253832752677287688334632964529575745453521891484388063960151437122387473304553972447766529162342359575348733544859454921218222325400253456823210954136659817178898950173705087155663585506700066971177816009662159227788517551850665293591707797703015090130353236712325340644119812482503196786552158159307428173492893299644130990806625997376702725562838442743068440810518392993504786234282971313394363169072659283303082000075413619890426495563620957987774463083145767914462250771514669968888162327007804520857918608342816883750018548118669452951888239830615319802827278713249333051407625212843094177738573647333145772254027407284765655396887700629095057749329268582133954362632292931254061786051636565954138347227487125208082267284827271135279150601151321513993399397821616609723060093786917236337128384979629089862148254389825329866852556589678617310140527830089340894501804283267982984500440862464372366960001223166629331878204943639833545933581690357724229106494594256956320803788970617837060119230527915132472173424129191829183599638664791836752346316278488171993255277815971897047172186721047691376616656354279112011959439523166283138285236779765017300503082835031079045053760655700490632440030251447818264002488017969736927974531659023879402786326781728189280486926809072211393139176939481552537582511136359982159615982711706851716689304096656342623180251510032351800102262063472586252018657436259149654645484986635087182435971999339716545432763349531031755294015369865240135635379642226604360092083926409306886439769589657536278579736627155661942098552864605385751490830158024026536814913444585302119090707253095960356494250166800267207477080039371863330937025707559495925593764474271847116829217605740358431633060002314648052248922221809595042761604213215018379293173619625194134232459467459427289513862951855995739027202474870627650201825075524045537511141630168117956685999250658227303555429808059005389252756065590819497082414319479596704667578714263907378498661872511435802236552204703360652715852635989014201109073109461359601243823244114564352925921509454792389582719853800646870923944786170419078992649661479654747184987867762730220343538549016798509487056421301370177404830855453411230481566900446897141930852964924330014789670269509450524970069799119863312943414727188264159410781249938346118322059622515703237894973869126248169363644103461911918501438010253015829328473548754434708349038136915777139497707458863427838257545952399171603646896888191804727255925451554255144535894223236598670048547626783393616299330140724340498865751241988795024833720646758787490351844591308989158875278545547599223977652380808967714086390809388638728941420974805413480613019310232329028479663946732154385925829488742523286008796053639832020982384693317509253789958825394021923139678559023323195435640959233702862084905492626032773019412666087970885265758462655114777499958934411485791476318696465229452916353957143946491646724477338564947453992092198403106221652416574501011509324943672782987372557994678750511365265101010547220490309411692945340569228106259070802184090777489947813643750347768431554123208575740505870687784059077227022348445017656335058242695572576657561293585789831950628977893714795956518548422235492846649130842906873207849698075585183918180351265860739478884058206715906081901524659470865563437382621084780425432484042250238308631696868266575198468058420628429638926530791373939094895161514182885194867273500000552958486338282509751389992933723518054752775846209005245520289431891354960462152039645120847026185575114560738643918726766078079618750655412506034113706066064325319226326824446049687181458580709481030848951214515560082057247829714389693542883970104813565867603693089740751843714595913930023091601877683952245966971252634131343880677186723042276465194941187496349892652364920568478702945813215182840341628394832892892097255710239070116989715718722875979463271891049952987113047501086424651108158579436648319168953679327113500598261061386642327023733884089991579459349571827962363546900262901892829722626372026776630086571119383625337531013259716872587220347758965084382362967207290901427684095722759345316695945668750848342459747027812952793324276720214436549086898271555097787404238339857807769644970740907017684861929984894350104948348406020120570347152288211588052679459921456988833982323820258383754847047791807469100932108635632492305437182475454731788811296990942648346797568393432568266176419654229835763147607623633946506740152812012178302278782798501148892799107045637641632577413904156293029613750698849062796851837196812285168044959987228874429536817308777114084549615843712191844366117212081580901146711258631541594787561761723928923762631594330424021437035758479565043019367401758190432318995086142228211025537099160766028138228962592765037395746507351124481694634979680742139476071653582205840303699062921411144653389249729036544510695821716203401088083422637095647637027176107609674596197968167885508116650994852391713384735836778569402176767437359327004016667504194838464165696697034839183875967705695784036272716184997831741301484177512268546812708690844495426510428157878080358875433720380807815932549287712859546452366876155925259500178961544923599534136939330141953093109718604096992249429117135291916208385085769672214862590850374758940598332150278260704151478214645322576416805202893408335155052757277704114339848001143151766917325510763104911173466668005711097167102530496881329473369213466992824596402245713866053059220007801490510873500747134782380875196408279476504979470182540493732092628475735145917661707941996036124687721406706727208520111649068303709309768144080493921736619660929985511730388746942328592728229929959424680583224629808874888834419877062941954284238291738404523750722792922745847357154093762186985517371579328602744346159120486473486056146443274755299768081694261192163657301436726535317438821298230623357484515474277012104047266571561284036078291627723882897646056022345042187465091945877599046780970704997814354638321676807845125729924559686124811603312304066053241353675590279650890786228784039265351005420907610700799691705511201138072693028298783608108784015346521394805121941138350798901733099038144117644818756026057643903892515484820516317137156517706936285094666233236765991633917595507943226534577486586646364961236012668554785278170812770512914142430359983001390646760158706502124702239758722339363931363451823199443832942662645435012720984216270282787347204226833210780552526216056724727198399256764532224612323176410776123532515636321985489064958042089001108827524248587208335350701195348836799678455016197882133165264430214655613718084877286677286659501012325777585685385531279101991685311420134935387890194888835580841404604484387607291352449504888397112809914669130957163783567580274004301833474662734466802584982644237883630000033947287361099481023458406747843307525490443457993862569349012142789689585599921601486835564186993977450967166231455513813633598755452016428509137263968807234948218804931117927797097066174204123691149252165364786892422807806242958214864575343023031447763230497873018644691577317261021643721279512442897459145531000059361850488705798344507420689831648278452151381598449423044914916518204823800661729999305796081391109683974035236345742731692780540274773074641224000064668644179099091376195735546589016034116292401227137765346693320092278411035486081948958829754804867108454729372657020521422949318438598850751315836696216019373138229427825766007184511285358814526136281518327546436510074195268580497663631027501208856241720998136813125740051033157969613182484672321047756408684802142775440041993358874972868329430478733681521580680212530436345947698963914859368561641279313472881403272158740985503565904741885102967139388454554936810494987090988040310966618121565840904808026614923063136932852260540235974111040002281772673307034635187598587522257569169802310057256181575776251840731782092167339884536251258448302078196461850372961271705537459570809908265793102794890337775303629075747546155691220143075489875418973672844958114003504960782097398850419329459246636714645393583876011635329042085829825753236458121363494700382997796542152664257443213294847688841321779172469378083179736870650180438038078543693537308434690834232571818598287274681974965574955194244882548801668064222591803666657882392882974566304317219753473474293679934776760458826787581633513849023045536882622682562075765001618406118866119156948029068843271837607677176150082986256501557532490512108367850625173093259300749502807377948705978090573232081890768722248114744164662177177556049301420720626468410615429627349584927499966264503695112432085481795576279027714400621553349339795010694247711087833983803242814861112782602458583207127371814450666152122562002441937291766701440051180419541763845817501954900178643128019118329208940997773091335514996926550878301389709903946235633719728230870066644801497658498902413253126114016848036773678346987397556846694036416086873974473941467973123535922092601631193333622844633869486018650564096953569724342435105086535252845746666643578378486451026328744559495984183116572730547887780017211949970136327452721718854361928194441089088270450032864526596259021227665502261165943928832381472460125358799842982556095005761391058824652925015909637762291871901365532553922533662848230577279843974822470353411111938427449243501353021588624270631561911559959396411017136236151267328466660121025628638712018785002967235525521565986157656510631321742878192987851336678641966997266254917437861503125220223324147593069562980814348944993446874572402704124269230918053446850152384365294405634470014400134924114562195247821846065174770670940618880173596299631946638941619273037048603829077088049059534985782124077637382060567591460831975966130111278641078940382978486177119308969789369079687044350115922166575204348639187503971366907972334412266228296249903337740438125872648109044686809547346106226578254916504728641196229575577107533761332905078383446443993930777979410684517718636581546762457910565177941554456525245859539230342198427367165797955365355810952508847982932991415084190674854240506353691779371188981524960279504351164264867504101831579200471027391957181509357308985762405978990213005507145268861439618343704939473150218149740369965433528533779983722619998990114236749840982064766716044012700344379400390435602583843993702508231644822316130833544663087946345054183191796624912381428198154831403071963849084594097051117662359402847273191697519396051209210469445996285419462978587086178622016887976434805558440902016925283754343699707185397111374616087604862845190652306199873112968964911541089313944502551679827830961581463835343426251586549560432815495769675591291061081248466066299225154286013855479973110229967702305910636085301825770803763774097991758302262655633001571152401762624668762001023844631165312139486506801743360612315964021893950106544471339972370400749233278713840892385697306580061266130840404183326435661197436833646802227384815443951299130811453145655684308599070589203479580780580724599851476928728763682548338269691199339374756335055809327106235069936227775827841982395176390938021550612778216816905017812320653146187088944927305959532980318668403234274289937105424442083215802700340090129873964295209287790044202017510871344162895011827776455798135728305025514935030816163582778473260892881389281067277140612395444737393257489446515114763527903317536572172296461663544369576710326801727539421529724456297065977337694372228214535101587524581179428805682572638574990968443676102558193384354155677267166129295495398304334537947181844833386032179216287084102446989167464869925697632325882948543376589377331798510131703246419962414875081290290244532576662345294992714008808677510516620018613061695055126424687448123495598834926694609279130437180242241858409053411324075868700268859387200475156599103264770667563584571496577205295329503725341324476379036781489468105832271581398981145039310730721621028024547469822808406168298544715846681372719368654710668817225171307455123915401720083302814037890481098614671030204210678416581346508639093468073371941558813768774084552144435032024345263288895787758624727032455081006996147888613546653871705733507597791227949939963630278360838285968317332084405475428004186193845859694652565018831796847481980737984154213969628804511119273673971486111613066719104297845475387424497884268020010794179175995281619118340524606887773856494668932075317675795922061465320184612238010224769741393159245551908592123339847004701562309940612226153261629402024186810699146071948264653274979592092826805012184467674400643939209971059907964857794368528181993302427647045818675480523393061548601381056582919998382309127661032263377483392147717539155518378751436824559326304049378567670521427484015823048605270378297440407863456166797147906018427006547938411651623098569401209220503838149774532551122664854440042922961800021890921835298777384099432475508957860310676949746064829965130915093509965874464596045087450878437780598442479888303138173127634329923333915312989038142642338755750733494522768966799561526043937760384398661458994319964955917569010040608294895449341831663297391641743384358591758327704185468637108272246517308485506453587721023594359320005324775304001783895989877782778000570049395767724217839911119142492453751106646326942065195398182947727945275805176273746175680254574137057795873619222545898929437515478985194937252336499319055954750517843992110069277922123425602096577561050424108711360756013846313343534490862573369875129255597281164922369285082611275952497745589486880330505993339663571031822033719471255585421883122180871644460598888596670626549745041847699294225810005044032789444745522617178633967369901662368642061364961760936612785907787045671297145844716385904663873945231125856229805375608357367461548277641656664006754906762189740995166899622907603415532230485722282210459774456180564555134152791756956102099303170681579262802013916600594655487483863376805590430436107876396412104497193091236237243736225732876521997098829458000971522841418511359103091972707440740468672681621418776592612898156157259823062723486020346849958720490776406879458859641741030689249929352334059960580796747272867470202745813365725264199924014646173757152191052834461533916542182273514059556351878647546586338846961532314593222722254891781012842859671312970446296362905216306707620941894941193951303054518554534767115309954334282918146472270861275913937455869200727925039381008739890353387130987010918793881046887534840526163718654596022490425717918332671007625138199547543368215208941670840364858582129219418695522325979316034269520082171094848566401095506967578149405834666919686362051408868249815389353750058049175104107461061556917986941279762838324467000785922496930417903065669020772497318851868629491906262655806312046216903594476323661516252932618374297757910676110036677366093020383104953822743965449244828890511287218421998592009126272337241597410770606122266436178737025550127439998191474535536286042422589079890850763138233108080955615350181876279470664418725100833819080876292822016845248979950133740976868514619016768355463634654758819425859521939336281442740734591488238318864397374848331672635258676741925693581041025231075059162498198789753448616933068370249035447030442781146347231225606924965393491956539028644215546341280399060481528378378753882419469285235102561210754206847895035843300968164558374544821197259393537991819596024841380789079058270097364623143594329769811618013112639927570312408310655725035059518975376895817974181012134706470923231710674278175669615701035500554925572104187620427326018768703099426820150063446993190329945656749939353148640801226482262759429091163728895808101488123769307355234332014775240715719256068477710342391362792735356699796889864520598676383391650806566474839336202102690608767420179535503595950123256190075849582951571244958613454468332683184058344321469104551615807317691547423366499388202963904889397712769576547341129287965074229363037729325970720054022735086748504706636844660675654820731622004923201160790627136099051427795654677777495298527598033936789252519091681546972730757824588423354309306885863504409691212402741478089863624631437210374130809975764779888946763702157818622413414377784453208043029811727572739487541658073456409139306671186298314820364712766370747180032795113926115721012404313586495458594858420212313073393400133328993281159924802527658688734461030003483556589338699406104257544591424674616763087206932616478059323174882481187472867877616506129689235864434514468145649863880066399075734118538653161085906692140064571690935227554596903884212596126769477122381514520391313690188699138430093444121347857052744529052912699751456989110287037006816392548404258646496250694383273620404102350006304435696743883459184583785363246726624796897202648001997538024721710932873404521090872571314153444510892821890176476226020991539901877516805495797229009256011956840274823511040948595821751279742742181389675213810625630430187175539860454209702794188492993628772269539704333718225918432779019465434593174609792555317675147767752500701913486509615959076647382588386937977795455258771296698025676123584498323915597765838202248927398121002474617199204102028797520675345313463643362933591820890957709872867338662162701928561295379422946953197317833292758774632620870926236722107287667896750554220903095818426157912608964780904214202967201083470486744400378104536280852672462796495807049074275036590320147342459016821065015865776390570338325950690750946873658571675415969680769867229842128688420838403816041886103048854739357781777127134020331498349011471800212841542943997209605333618075006359942804998962957267492179406431004654744150354628696913421880690002869755274171336693935281754843171347868265822080812524430631958666414042889498701301155768356245782398151763988773304606120572709790601433800452982209760360465494666574000869164826896671817849057994359990390594329329221524173555929535274419504974261770898246764284247956248348042259503376940697752476649097598738250699198710271156007403829531170626324499782838161227550588676646818594786854852389752208085289400533693340287874831978910154632675335915025228620323765988217434660220873163973477033325561949238253038831887745369271598044768755625976285204945933873466762238668369377331939656454334109534085412346909432327037351807027893127663390884044781432256117595439314928809125654954918105225054773242104519163730183135298003383241396690170738690174199715590583711187511590470141225014563239143490493861989633480533123261220578339884003008017506338511439744983219697799563821095469301057785845458097724667950234240243501208108044612848555923699642982249649593370915077762180406541380128933693533396776437405630458757313584801300313629830213098426112261199748890308638112577039013792432521091294880119953279813780343016894448710759234163655887383073960937772837585351039277202580288948467227890578798073016308050988569678788329293920178682307626887980484044847262895107639580338259014913046904458736328100964843358113755248798118004184645791417332681790364315207910919356205635899961688102908863859929960154446687728240995245600672487610575708638482163440961891267726089343560438322448568197720087586514008014678057899366980606113588701710037695565548843787972973624678557931661543365638676739643289869024094455719927730037412725166159743242910888408365351300811214356085027733875694020227832472582605539967634388392071536061545448279432906337403191471284031209323439091570679941232530860161210481089969588473316360699892901881479780867556400156518578348693100909036700284077191940847993465881682124241995909169268709190816670634487467167413167669677477883666414672970066390861712263209397526855231320175960453923016991009846257869208109388542702092392259750979818330264850269465379523745577782548002320135504909780869336840544514770519198082566745909901395604660405378133733142582812759500665339407599606351242010516448227518242395082876718367744737014124305025614928586080626115536671303644038709636571206645295242040012026748521224598133200939317316474789167146879058284948709817522180561061405438782160250362077681905521634002707219724746510795684715286162183125564919425658032354341835504478962439262067863721941114737505100862778897249259890491083824216793878552113081860517926751115219944626185345039881705491479763071978821663450735315054035839417230956594920032267250312363966350330083257767462023763007205943145841818510377904829041611694133783539269204083938148131286754426870698651000740244103745900109727149995063849517432189423467896774764472703239223699286693493451479233849179307487833653422044306857923122114409673452533532144515612168908541133462221905403056717672187467979266998259211212992635595460795271564450592781983296326956656214432137963754472826609842938194657041418436909502124347823879669719516382248652499503150380529805396749069427268259443782191002281115454664991098963115168716736114711558756683054650075775889356734536602789331293360292650706315775142295881109787925813386230803397250850088041080715034647131746560610299237344154881253380954427210020230471266372957175686473617015190828687064241960441029121063998879530243239649707367940005970502849981861860331884016247150113520599446776676354080322605493563497316887182052059566895699023346124621495929122314200811828144332654209423807533232215452433089118120174937670634656600231562775670223672789630409871875504481297111918931526755853754145947390090124308626599565840458204488168647206222568294172379072877691136634929559335609332671734797310011602917771032305616625551626647759544814335543296880161321432898311006923672398468536996847557982100628123034087807533023808406561051710705327385622007334674516432472533059279974231213757236167205670494674463577765829507012991442933111890617180709647732152261347130183488655510122037502485352551673619005933484564904985234531130954979374892667485496511873841528336242768644245340727746513623701666876616957721686806789390914637706104176495013436221585430521205412013839498445947337563280199634986240628878041539360443185042623156739128122466533323063711729264119701142497306304121369907883118855083958497396896381942643239150855397623296349624948418376419107160562314992888129350839280533942576746527603602351729429837509786180204961063993827480254989418348082261726338528185185107119934511397053225808506718862476852137334996834608566228778008959977369332685849238992369334025375240571867752098545132875393683395805925403208406690667601425134333515371929840078644896211681730118769875504499204820896021579348292478403168001760380357106523987781380130428276177492772733208513788310494402337213844722824217992777007998309237769959234523696155458734792195535784762996259667454141751550409448330698151808001382702044423232243953758703796914255383561428357168153672931066063476778788802274128707331110278080453323928044459112098623222991073281476155967272687490277339681344346998598123609137377701534421302477361273091486375717067824847741764884433414825747685351255432004448163093097555214254998342876129452842627586109602709180571830962100801967443110915127617522466870076999225026484358770212985797599611241035742599444795906071388219065092307429424836014378841688241748063834310828072073862687107340635849738524679765409651189277129228033244835364779784655471125008421401072346788976967943914402810550695831659963827894776472122968809973379309968955143452502260383321835712418757305185837371725914982906407366980233650491405484582451641768896286526522147358979542576032147708069547883664653077310901506688012381473378336157930125985642584596945103014402415994115222538476907561554025914151006730811613552735326223933157312095199162510278022383389139198645804792916166776698102536481527155226334446496853821680181886588150735915993875774165810835884208893837206538570076514913533404558520961219115261238676692352295277040207365508244360909894511323493136631549761554914447371962015615404188012346915264954542667418826272642733941771903484355221937132185858037146218308496180462782499616662404507060535052566853536881261430521166323487132808569513086702268315405042505724217099031854987330892483296900484421206302263712679687774923782160088064069404075413924215458937167852020031489632854692378372476771532212798736111251927596544242740386620672889428078312158882196048572179107935651264675841383666313998927966271673990918211744342036241116814933852048799715166818367939086176622259121985769247550371837346837041551703259396786987931914895276574419841765620598390624024476920168704876146056347878134022233853074227590924014671083496567249983877827845002270108186992532385359309411340428480091068944672324604973633934001665276851353348650199335285020648147764087652425322634338869786952934452753715559204441422791210632905541746480768479234090783670646873770343905840145657686969494347781434766885054159119854108057443112222580879882325911559836278189963810739221817781831972035266070524142627838585926739813151280046470489504608888199134848222916755606385703651143268220957024823225600726273790831146322878616574042450802091944831845503439439508839361055361140572661059983462658060198624632753565871666725165384142239758591654319071678865706370992868755247458295609497261060211174545952140218382499399307794952994442243288313457322877240961053297467890725230741904823561349453449698128243879837732044655440182050927198244601127755144543552931084241734470490672449971410536014688253460688127702174517222765860992382525660055271295749351476277769182522439878211786078147561928984848648718933273621412770800973190151942337535564122272089310416019683579201048536727064921441964729186162508566292675755792084523439958268339165045333782384517522754563156596433893486218478253209102100852637599062027970480445850609392353567112706408096658482463591891385300232208864899770600607040272914313177119886203412227178548756940825183219855345694574784647336637767852447812230597705229533277331615170119478200015801844933697555608337517420512562739282957675292270347475572634342481850752768759246203518568388159423963564609300057879033610044244884683760760456789798149185181824263487951053610241098740191018852515334468055078200790127824321894828798182280211201255064083975441827231231779962332586949900618072648809125246465624820429238023054556167812578637464376389497040728313274399021167712440662487899843649249991411141641109787670635984323938260714427828073668149438474934004663193629732573236353107118932709347297187006405065953297624819171346935711980468325279078270446738759974683859003991324317264019562945795082052087060734859143071391187370871313727659528559413614783059060407219110574498870774464296867123594589238963345309335507463651492441993535783481952182351574786303009305136082205872786353909352589599908359078955298134376116151627131915622660294219995709479142615322383314692063817650339989130059999558645387368408871294107982279964062164584004998154748408567253296824849566888912523207382987088596806951214290743733891734618911778395770794912594964350114520215307399660645689510240460455581455191442890121112304493908606284106798799832076330644434733475030864664140626753340791155810148509033200632305481978749259691548457390813171964386244286999641192054632472932052058075315831755804100328272578487686626499244408025059582592760796677652138166729849476210781231492738966019204715087391510384931633443274227534974672190134663082423042003347160570674315026713578406695928351310357657918904759617618154022233662424702215685060350238273307586299112731446893536331744959147166800033154478515582552345607305068148358713743443348693194466871252799264631242156640898998953046248402208689661190891724124648213093332813535875144513253937831248204664629834535302244287279531312428737635311415528308918456772182003576073513649385424367771587213027038560313997044526864589174233426948274580639088564464342225745462386300454779046155006424410423800976115781127672491065657009728279749313246235551703716167985837432068179967575120222800153437183428585229075248654077261672654686796395477177865397582704556333574236625232366081447523065972892421853311678362196841609474368771886128615310148257529209901060651558144223882907877856230601738347023431421882293293102621694717594543451706935680791840043376342768544491822831206133693382761060799678478223597725979748358960765890198208748448494734064478662221113691635214490165679372636150998321492598312823801173022292266455029216971088517456183648470773040865597212056748934831117405978394309489509067815184914393442046355235040771710431796199932886818527438951583865455052264106211807390894757994127873296335878111618063158451005665053319465434683378142342057245948599359003182349698973208027633564378232973074059389777005644883200380830137897536386900879402402071848119515242583514946623314843517533695796489900704074333793494282929293238794125472005243830327828425896669915149798619614532909641201798111340963869563457970166664050356580514779972919751991295716235259638512508788279005656555947458400713124118070177463903291899673222042975933625499831203573059340508480098207437102043131530838439019836941553689525597708459940005672771619435527452139833469256979101334123692442198159876934013472493318863713043937551173639423136258416162945509366081238286052097031184966098873374180512236761868246937142969069343243026041157026920717413501754456170435969541345218917279314907411880850341070098558858581958361047168021748926166084016017476771840638271262481380837600481771450394264033956668180018803023330408357999215132149279401119188423826389146977811219570757051486297224380561093400409473070493946073897825861084705848045928729214600770323044508886769603823219905717511106559105313493492913882002300703354363594135195110186149694213403480674968609916115953151804607362861996384778296512190627517815123831082875303873755414010677284503687095893140958937814094617585484275778455502118963909666804347530869050387845420122280394692209928730385177796829911955412648176979777530701544845122180753207335407362795839423697469707120680974001740874074891161840543759322302511959054520264339604590928688422729888031767648356636214739315429744740399677872685812389894200239982731449816849978169660414656087996291456587820921118501349675456273449238193367339717513408700868618786747048436914261636724104657947544385233545037610518829829601437081420002855535465002984499060736480947756820072366073672480021809960061097621406143489595682328681351702294425405022680833418510354446791586916779326801826974750739450660962201808182436723873581937811255167308999413714800722206001931542771529889257427243837320750977898313903498163443425379672134593136489323383647951453222504069864203652317669180836610404832011678903437257529338214845155971284057651079847252003708300951976688680173366661712181484785726776332381414751712430116174720673472378203480997359305910311193974226020050379872741806459794792664776512391124130547494947890339277563230017027618060410041147367944674619337937264419967189872401303499289842028014244940365748153627266977596912285022877183473944909761545151757366680666786088927004677774815817175839949389137047820498540339482633727947182667841714302725785471429881401355183887035350675277849725368637159869875119777173956465356374075921463184881026056100727702041001130875415602754084351241466868041046782998800865102322396613105658844847912303647536297642957856248523477199659228773572060114351267233476971452199491247189390464866928137256037655757828010071167734081129577251234348015425918664123935376087600855684467558966570126251361987947992624472331245191311318030215850721137923492861697095643814885411772319830587353198191304101450896184927113671031065229178092121802168245152380574135382609326491816236204556684932932746306726677835637573300177055879553692312145389313704156409899301960368419290076487731514827541525802329321729982751441856425985481073097898397118550164759852714281450314495763543790531705785418897223991099149766794227578012321159028663525249621210496971558280884831499436400410990976618115280403325237083411960943210915318335383326420947494894429618645848340142188255398433473727776608274783863342467269836302721494821168636716042721927402113462113656875232109860585981326664251236882636539497699917823193482633799498514749748827743515661286538111183462856674870558861716824796157464137666850865650307288421996033577005245676973979013448435238780476072232239200716740520030287073001146875598042960839573023793400268486998294041019517596647499715360551346361111094147664135694001373911802257655516845273898244402346979030038465957293296390142296349711023218842007243056302939712159127941359148608045261184893503801893804653954431319362150031671351863717901703837935724248677505099161395935947535883095144489314453619768431983330010330395255049483275094134837634137428620827319104784436481444979249191843795491302610877146771693173636720538442964540237309131347326520413483628418661063200043955785528065533879430789274862111111107031292851796814367275380257007728306724129602776081200285516653853179144080972120185468205211642324284788802313009895818342297969184311316700024662485180158348271890681394083332954645233227861130550624493990022443117287270453831325872660845231834588516258398373828024333187919604200638499793295331035952361163726285776866204583759407309742409509207315298444239692672200942453327536333226215385178644112536950826045933871278123451959415567490244642156503913729840673095711452177555896525217073780431384194056199732628699657104732616087656880555480592834581940211877366687863956284240694241672877243064944130628476402843171728513085439130177914921536652577955300721366946217351222655355676899126805178363737824767214343448586015160198927924139247636591362957364581750340357723369988853188697123650275884483506576306548828090878248742058217339690477135431580238045694910521919756603869738835939705930126974536526431346501940528985692940268858749556320942191577624246889105277964462886803440938982234776495425447754439665824656595506891461333398780327650463970241700888083510489322149618626320283313469141053414353541215616113088102517143763414618173560874751151935288523724760879588850962330789232749651175262239862415950663683226251646254060148213089856921092249234357471835553890280642918339985807617294817227695014433146713850793423254701395336667613355784573063539508020341029866343389017763033767293524233292177580272953385709909187994845416833274927720536432864145327066114556300550987862170014747269930421883827993659228495489387859765737027748671454523058590743344615551095304756006415326322023772870943752042792284861663006206578411248250296964815510862535912692232772291243117488893235207044411195555120407177785422519208158207878888513542042239681854488831395116837114637893704914488982897735734968371945104968028998445908950254907014037453096083624372978736771918046919242277075628364635030534725727415418066869895037601608642098627365872712201530793849346730279656993356744447012067102578337254899514272992035564444511106488217761038461945109690585432001574600711698255339967963743337095199326378928330405703028481137190035023453249106531037446614095221635518886204259284807068944122716304556478694608386121577016662995806471823023372990002935641393125887872330664723272689750002768808073506609913307042041508519475077136702030896135943989424045412576946588530955506642428798738673229738376978974002463466986710591723256284022539995878840892047097732039928314837630201840824842483355968544332714963734715174086050962508259807943526207249267451455207134083874295506360942139585305941825547146519442579860280099062795605822269217074998994254434250444619418121577279666609251620148597149171940193699144803166440600327549188443644126415582833566076875968254291403323777886831041066096387130721245724625034194526102200454746835298191181840183915364700168236900956987044953858585626647449368038895063940428570657394574105450832652088288379407532025097880142580395300250605189711565047168580410260276213961569520658645936358968054656193047930532987407779237186427173638807007817313574887845140958476962009670667946655406323003297488618883875529999399364367097796622412344711903504286134340252921728121885900717315354183124731921220825579764971414011454550409673813011606372665175666380738791810546181802465469064141101001022918120355566250183146539162327869458477342562255790746399246890444781002106807086536324832442751291884514459445454774538331146780156744895770164926575119411829248034741834713127942378449751311181388622447114092603458147425903528171765840672683443909424963394495574776940030179849049325065945261415582512145967950063099576686327872029308962150873272141969180048801095697945827866034314920558845488016558565959117071496295213319793998819214498637025397487597692105886318560276048226999819977407316760947744583697098510061273137864715967241247419350660587447028847339055982339741390734469668398536988467920568463659252292196087281156650843149571008715726013223745017796824796245417476500540842690917714551694594733650445411731541111103456352475653659621900407500457217662305307029903238368528239501872841753336567354966747141882164832746126306214898280826014120446233407003098032116938688536245542212577942073093877163390109576184978817927153126156926171640363399075768080713071919298974315837381122578683846790361132524897949068379648969470936503615001407048107406703412568252880844943568659917155357992693544264819281995702437943128994962111683396105778031114288860484175470155259700149854670836074702953123660194764318560082578870254679195180452764979104923344965428396766033516206544163918860059142684447224869826065761933604124681453451788812849436725483068991491828296591338211505230919350853447952348193158475127836757019445544888106546578014860612446576871946803845765798569917439204511388510291138864893170564463475743280524709846326898947820969981370754107974238325710996963053045519088151790717222411276299626040109976773774015458525847402878569782636740546664013439635638196207813032539980763537373342222039861077386198235286574053576506951229957544995675658308313531586473370006275980416781016582645819835185730756837317016301703198817242378698919784742369224651390653739055327053873622349014925420624825627668214953098646441568629524361116545137512075107959587197633575749141811088968285347170737647921125294039562719638269217252392365281899180854974404174889881888440154238933097357163370452004795882793161579156346634802036736