Más contenido en redes:

Un millón de dígitos de pi



El primer millón de dígitos del número pi:


3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042875150631875330029421186822218937755460272272912905042875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188386857934839611512971605816657450967036774958366666931218838685793483961151297160581665745096703677495836666693121881763679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486434415908558011073070311201502243416073157929528752936835820397003389112114170685219366589789459503154389589015303827143001929589074149943592894083097077078362875914484037045038618966975811201852319231868659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378167056992868299895611982353837157880480478704584175394665497690173220310890070303362911767308448450372145669644401469545173857434157810158618783839278552609399130570255575559060947051498093487773320072797573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376332428904269776106791933910983300422310293728298798903209391092682836306173610173878123679898645149311702437128285882630486298884492207415640607147059137405524665756971870217355287245439427714809179364437650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239507544785683173631557153527046524235259737513408825461609661440746675514226836031959801072152463551069171871335731685485631280857834435623670959650949946968820661185118086034202821331801249410991502601435450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966065253525320273650725989121255686842802077246487722010996631829559552903393312284364864475973560859840760947298389542433932623153239918981852264180831296333546356874828863465618504810632288805596737844562000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058477512026354947347534748189262254190352671614429284899857536740692165271630086060654373736823556588626486343689153218095572204456777137368310458075584529612832832606319629728527966674362974800821318627921869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949992366412287881226419148504856328072066418557059520375030322916894489427578306090910852410601400683274205583969773823150734996108758763704255564964086855071942256344966732430656259250474581762733281816017019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545414882674448009105704186162626837971120886141357279611099088292970229692128180978798951391504270936786444983196420134566833908775943006442485623012124614511697921939634409508083229281294270436599146482749984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139388908609776017857389307518661906505018077165001840744325854024184360501118242990702323417243674525365349594799063334540754371812699399833719218485418735979845348934592268515068182662490078029335012658824974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179805040587107671179041130217482796682353001960220253185576789843317586806378359968791601538922220236575765581586611409199394861599209159917553341783033347643131635012705390697079326567812415906434284721360235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200064527162280855398278906584233447552821276517650572663267691141075034845871896996434875775138479148183635100621466818585096348887081456976722020167991199462417776688907917136865945960726468538810778783002161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113056625176412759821181939661101850562880555942566060032312116180994622129301002470913347150682268430458680300904242861682025562140946087900065191099495570815816505828983340739466084457565780636690272843462018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834542814487304358047053315081510503001521428117175393649133166172621235405527863308002083177055630294963594201654333094094177196326234119387105161570101798053551679370860291366756986097124120368583812957695307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209888551415024163818325975259593165531865833117126857941527206612218422661411825154657484878312610347834546749258308729985447421206445095233245050877431496166555251797168020991720026409374921907569936896330281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381499964723334079613041469739476372650869273347108415685608430921316240434629863920841660055904598506491243505264766067600344441618186403670083774114101094320588955598658670077863671896944089622321374034113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456157981599834839100412601050746964599430331978810634913923812490503061433407918328004063907098672596197098311265960147473725330526853717742146554005873924623727617364905198713368067723952570781360686683261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960668259227431319007963011587084670117654935393046563356225311244727796669005831190616101972663073970542531439818457379449486780134618217875939076999602029083965677287846905736401564015047696448993947541474608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769453339208808849477828894851122154743230191383245562993881020614490266876010207753210915684977830740859649857967152617010039475494539917698791323546550106407355816999409756248149967443278429202762644189793918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130222335852072273620485057289238815884938754535229186399714380884061757286220950122506515863104258884134355431973729856217753072022629475552483044445340434888878581170341345342522354319407877972846760181583227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501375046341695655156618298878630705842306967660254053024811471007899784211830489010464056896539702885595530925558636052158957375114089564905844156774937105859648014315874614491250549253191164653821585197370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882617577539922055131509377200624863085562820493575752724995567089221634233983602565328731029194007041176919220850015116735670101958971001797019578120892910969417754369904368202563024054822625401905696507710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068719761017456587373796740697137423238753839030317200200207205928488785123911746471673743737923283881966201687622191346233893762599527025672138622112458980212130501407288904300322535504095866818724139369938193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011509880870678268835317200767522553138008818780431690190072804831799287414125476123089606833095828377667688287578688683092976001011974533898331952588619630132917094385816615374171794496319177154312506959853481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035229039018485730806275670867658627104769409203565593025352743418965927002227049233186829991560936413757004988537304596396152734629396974951748062696451793018719986788537581415975799314806608557232568374305282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926632728243514933640704589683852345624744361175256766987767597223439206357507471552918102762614012992480422883990297879925418517499129630283990729635588579890593317795908769073905646025623533567221552259468838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695399567897981727860920462286839735779815111868152659884606949758965481314651150392626377749513761557248195116119877250344564710738513435927355538712462375598193813214238441581929070046389771683887207916361741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920302176945120771774588795519510473384184739980796306767885845167575729904306971542642383498009870869933670912108394453506245922432312348278549660374657188014892937945147870540607924575900601219622123928720017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424027484608510722406676778760855247617773833089502610064388350550205456324346167859451941795669874968515244883847513618180667108316165564209369270520611898517292617141714434655508706306063551012949400309759167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962552698607311763718207498827399770601991362093083230736838206455732563765982912578131492224220427971241441629951265945639792759380383804782623160424325399132851123032247037561942321733047854078576244013291717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077092831376408103352255242717404107673565424441004483347440101726441052954787296345898640501203608024451190350994974493973617181575277093780209236668135841636268319263406714182797421342546220705415600050959674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977803082885181200173369559127137714195011361304409753279190504891583246399143483531648681548579178632935123925552510211182788573696060276931301469661433449642302114382483705633532793858895267672076688971274435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248013795136170367763457594975686208013996374551762425147780628722265971455482906769295713643572152674468987889418820751292225756509143552828874614195097862427527881571566400763721037803194043095844272549269987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275460173870795625993579785302443476716399591462317931239989986928437975702492369551587297683854005227651495614447105971962889888157109415171701518114743513643854005116246202131174800791983749700100471363432523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960039363153368842724375366799698647934741133198328619441460653922784099903143840354565047056789552024827176011874335643690243503085631309559055250390492731613311734922584644609024535079190184411299321699770451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119339775459044045078568021398465009693429547310269249947586466058091669984160684646087293943808274308285817479694172872990311013192675573897984091364253479694943480377703364634958476862982590103470727861218623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668752023859375183280372851143274811699683692849220447380570633496618711240947835915869626858643589141359854253577688774932743634514754488640868818030369652431755688300205860773256959716086485415834468432489963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070033178796854436279525719023623274614262868732738009497741122856237663214904653294072026197539071740422259539242888164559796570030957141389106936845036268231053986743753240052701534745893325679514941854537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141707298046994813593483150568116642793219335279822714715767340186088721518799669350252700757556099719882863064285448128275139280694702750148163289727314347348528529504604883271673978981563678804780443602109007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510077953118326861708037070935927614936782530858340482351003632166378957426202550350116861543407379504516482896755698358935522020173679548075781909502697981271148703431190363112246128295303820512870430929471974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573046990800923440186638113252097123096476059989947925759851008173039606822219975327301606582628527582576695078547260349382981335825281786706085126560022688717811253597829337347791412736284188656175920832879447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666907230634693130169711820632535269244043840093724284428209709364856909468920087371753252557030543539828727812301139808093867015474885803445631871319602678548793893316205007675264112044390237583342724298699654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151832826472578628815207101081499558980338118961569441756761340717046538512170902123777884333649651872119905407581877394397528364143953044245913903178813004188791887114553148267469987055587931040240388884083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561805556371076814888893619275742659935823559431530887933052767558747512365065843969475604297192002319868024351719937868100361102312568364256079597410574153628297180046497748573718378639037039015397374911654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861982603205495839501675552509644137118222561496014003023035407899209698677507867200038074267970530307167932296015648622808518403352350170608589512912223246117830253163628943946073652771336511631646446199099021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742636761965002434737172729028462209798394871065982270009954918877696188505432653211802219444282228425152556141187434018041946141394514712872527592391255964437356833972896331267678234910356332961294719101515714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969857965491580627950274097716886114807616315161855306856692457171769220443668433127398933794111629722451699985468562215702417594711769952916550211685500108985761934639455908826270775311465775223884634351937653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621656691720274262854823933960018254599409254308169691032978411234022885600190549342750223185294712829609693976813734197704278121300147328677605719405969979275512461718434956985641712872481183465420642318714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691777930704075732904397494995822410623810514917650238504182730096620171750940590805408957283755406355152219965820757351315707592361539863945921115586400098809755261053838256899272158478504174606516151133788336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158914995360649842803457949275700949795945060237877501947062463239495495782308228306684081880252107663907423097372091628533717680621644693543231791785530583317142084798863034084657264269395570026857605753934788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547520005151175102901229924870961545928026206076169827218102916731554892942374085196743307916607849905578210193571366243599088361385980851615641747694605478554008195353067080308969763045294686823321053287823743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318335171625439030469898931426154426359511363466057378654951244574752621678954703628904830484996804037722513431937373441236618586944588064018584073147633792940386340435919419872355263015654608051868676068043160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108486209663742674579831301222343872583124422033094571457541470479293875858238997738515213523723895596643122356432626286011474890868171592810668727084008203377186921535235269263472268090825989889840026208152178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200254667367996485043373133495208210751199258926638995647569858707901856123791578864374469037871509500112550210038845311923652965599461900474846620642347942329670060529003709175578188708193522146871427235277632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129094789902646664431560983729615019686242282506723061667209435465714251493086424887785986827595887490650772602509518295367651811823686169447243607837642947624692263194989219646440683169287661615060508138463194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436945210216883190446168629763325229863851818850049286935727647668238555646365544964006317648285575785866610228551564859908820958689444362546986795238226861159699100563660829267915337538160661122478695313261585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299070263443797875691855434089764407601308444819786265079476440830134942435834281885915259293471436317533749589701072873501270788980481635045676667693207553051840432446100740321676471836083708475065126930707660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172592226000511091342681074670129014301654101064933212283790827515001003530015654597508323772965439697382047741626571065740821649960626227496187953347907065988974871779564334064841745645747906925170149499810095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336225218992000418975745765315123000064445715931701771688635483333051921582055946117357716321132233931965320386199005116178171334001070576652689919708169202219464704323795356411866063920558609034457064151797782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541329715652879529532639759538535920950138633380507561369530899547584883024261962758985941513780515805025767540401785795852448831172105089277089227273431973823884687307168230248788688585510108073522781405371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731883971515002798163374779078775038307986759404591073921034587404219617034925808189907205961291586420202885734009114955238865107911371495334639763988183948804530075074740372280936820535430494951948332833470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946136464337804671165055504670671836221285795048067165630427626711429999113487698447050370637900181096888629721757951732433802780617470496302042492916619171886243355599282093243919445711886321556320161654247055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748633351503090445328052597795658920554562434297982794134891756382400771612173324736428540160610044337641457220785921715591401037832020132133833096380778904095723810558829392796374381660686835195059277019515361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261221162583602728961624559041896770247453827583966522993712351630489833012421417455788591594256059792427721819908556279848605617453684478923796907975594555154646853163024462325674034895845462256744858202042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611400822056396780658535407668688227542650381225999162076017089556747446524234452017661650325945665912966786324621379919222961458671422482492880647680321086477994100410060033906792752373625460277429600734788038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450392976805783223402171676555917766840375723484409461762931288492689936871389838822271060279037990019045583360079739277410926655739233147025909233890654388422351324115388018559234956139930223919645050450369352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172366038110542803591445720248256456105714055462420821343520948108417158289572445072063546816002305120140848054358742526171017681853883557558717415424775449772221419261315525269109175563331932322243218525422182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761030604940973309169031678309793463661183278453186871646268073883365670456601042376850580139507443647963922284112697945134773004924987864965636794909929132712528977651918175427962806084932375520815361113240339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126525635693244659398400636890315254722923991414474377069633893576192603918924793631780083102611419548543605157787160049557886565797066588551042882466363057207778902266777042512681571979533225107638903681976284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630098347811952291382184732634228575912097980547828525059183798336801787411242644746002256241498069140074097972102327853957561512834580616541111792671042799057939449713494632895045651286884784187175802050458328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767122363791875864720121496606115128048709648863056228440839369443872169212084920085155838125107074195518720809374694245973117281172105192890389637039423577686212766821093182763664984042124938144097959863114225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453220723794891863572149106242526993994671015366846234105153338142684770627585203524099207972086991453730109551641503317628200196916411546026820723669255275141842996992053985343307306805737238050416719722112737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681389868867103147598264611293795439526672867275994833590259744587868768496462683484434414135917714587766088077845357183932937193739323640835633757668846821111799350554102085561884901020160050563954168745108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298924553990101980112140290868699920575891777188074146122205024728585715367530747814389730571787268366360157613610077228631963885264623512553807731945956356796538236249992655180433079635962110674552852142902629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077530901574443829487339779605322849358301361837958626480321297368474817516476913662110360369509106666505171711508278200932788358722598394046306837631811808904423626219988123682680785795262197216687201745517472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688927104595851932895139167823857735772658100479825639355193520055204080028705967824973937478860528356493591497838037796496000521244583477900175604246586665199807702883943851638095504304921960324436090340085174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771456252399450075938020609355024892008476733229308574222255020645569023912654366357852427242905605320575403082101451238209021746697579765347517250146583747884808053773515042222404295760361375432486199655891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567545177169950878941180593630524994496701237598006553499873966639539441701705969810151271933311840767923271853953980976404852784674387231643291002906549530861283330266400758012961849920702200255597215695758837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971257952890036407198923328131611640416937736628013259738222237426818917648959642270338039059295964969648213311447316676504197678110849096646942571706945700787126401448652242846948897617256746535220506162107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435078592810447849266395265239871864417338008568169232134742975458326940216125333283790096064862778549412667951367404587741694559614076265662502990069226726787603658713793279604184883939339346926354341548095183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194794274716691603049782928896147458702649979707920638724082502300642554499590401197410853516784440901880646293748354439614400353523310304041178457228902958180581032123743825898702747370401068377771592512645357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415057452839171603715453082525558343202512542416624457524562964457910769717152147095185055003550543906316882581057850746356562047914667680556984384552027709969719889807233714869563567031776877637897432734928293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883737738824076528045191427137488110559744718310093937519765980210024101251123081368260338474491087716132285766026393884928495989823656572720426357202637482564949491262914191713064628059566982549360326132019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711200081475064026830464189887697478791731737038139991888242416994212152776045185956711909418073734793310997092831554681656395271010461137625406644958618385463898220899677832955011143149959368039822230371363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094704509594201202114220864191279049359945213739248711074323149511380429379365543637217263481907571135312709307952729522112479531498969908089466574769556512436056114200866399056099000380302506124236077503293413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657039210421496349523857085605723434621576956985134068304548331545907536471146996824209102321431171769227738534770417794076441001301048596092707211320523185382227444870243327103987811479127546080836115687792151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643072976355761055112462033248005310599511150543148482955343295983057427245173788652719300073232173623758732731489091094553740270481185557199051683938745352067970859211896407854895041094056996598871598863362077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625016917966481250155593231148267300563383579726032860177847414960045697257834956205873287301245145557634523029864814954410090788352980120701265410952518460666201767420452573679946907719084537874820608029048251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045944318886297872357160302248135220460109063521450828063974927551284769435499620339916448879197437902095718886320024750207910237907307296374632633667459427556378453569136734552401489712590948036856628232100500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258283111339115390633766173730772363027988986998579945016592376906754883798892940060516282614004815046948281403308391643424865093963545890913280595111633455036563482451915058317949808318272813479505077271733594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481092468854338332986639074547805263629161562798803187828270745163032786390756653362197506322424864576945975359667320060389826293000076125149479800895671245256955982758548576901246368659494224227727177151849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141150155098551171241466824331235206284065722692606904747919644729752832274956981963277872816259540120205380732958250049744593080978240952991296542331849879880077168163198608651208831586725650659441406184468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024458744020844342827300467309795555666811501300338889583802314643138290026007632285034758307808788951803139810207627889851743534782251208467594974300244378958428956807526632036276962994601808349419949127065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896545536482125459263355257292595281499341587877651569223119151023373440716991656476398200089698462984399775938539811213321810328198969945792617649358297483733877523528594640351382382306269453634581003193672502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757697292339888286032302997704306662886955301210272705763395989768941024996847949816842011992561348075644040655946238370872368881254894914879487348086141681055211400184551700844448429484755073273664282722206336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372852359204007425152256386166756203188398117618611960221628474319079702503674592828046781785366473935600354038278281845766947823374571138221219326167295010427069409520265028052289859093500239449087456262053452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181578487833652886543654224830202789241704968965110417275947501781226785814391748649424357300909171264877160595920974458114629554223100220085120522589764778114827039426776664278274625939511743807198618722265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389146465830554301315509528510972630050805188265272685335372937338569182693717167730316118647494810424215127915910146065697953331337740959367493264414637024275245393350301309928336485407069840343991212452492755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454742124495528490914921933719362340294337125575569988652966236450353519202677763794248208286056893623152152317885014521313214914698685483594470686585010981314205892676416115162109405356780736810089734245872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944678218396547110902117340725139724757357008555312743219996751259582568063235880883884366203262266191414934740436498000247398332092411838667429609269460701418388178110714282439657796388439864782313715424989472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045585684558650432859917676519619327114349866540777451450047307271171479571222757201812886446440777517460328242317338533765298981044232240467724632047951798097157602580088576897513405948054826877288477629384645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174282384948178225490636599208474903758320574467795910675566064077500934712981700581876940802799269046059498721176341519148822518670439557310017937100046657292180372848797971569227888839704198254565706428908985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611578831597901882912877765396964067539208084858229047556190518637549059417647208090848523929966365377746870985680142361370763704674236180292186795924769777652926292904179839275053432943384476533398501228283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634590853386677292538520444984413136863751894117684862613603681937363513393254080685226921474307329134467625293226408453308449386471515618139413634350364817794755097633925598827869036963238633034257944529229237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597855795041988075485811336289154900903908060775415757361373755988018757307536248737001291223826113438103923437231353689889153374949378632498494176428141704528408296939917243232867725641504837657731144933521553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623178893126031528575871642421190333798725775874290129037593626972723431489357257241883794186276864566775868692027601439805016387143520477673880900578928363381779738845734410014996643323582225792535171105948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072854891546806842095743207506621154487626644675798636443880232586360886918759442271521429650664161384963815027972173071265920578266002784718140034209265693070309044570245964675764901852781393148131509203641049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414329152151705997454593125946821214351062276330331850433948895127672063729151249368193570319104693572905276288768782500485054800597323075326522779255241991315961791152206941968547918734156699781096702562993993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854712303949459661572587509650320071247665759381372124801134153550616754720369579105597461067112541711745369543014719141993731972279716902116135726252431164722893666441426212438549813623694963571282116036854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503424064077512331512158999246297497845474385785595227089267102479199199645043040166005621762962340149282181611520504643814051201017632797902693271222701259270816304579408695938850308858577776769880577120277461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520300200142743376390418788622635274702258984849469077694747613276391052599405660382382371636943555470658174827307182474182726362724046239944028444473642458644475104690299765267497344356985708539057819159958599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898576072610576974181963369679075518838322017344376439805368296268732851893953081597213840998753657746635493253113936255978954300091191426740753859254969015797341918371040169991790094567835962857322447147907320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696510876062872957459088920170238672074010602453894151954739328142466223126892362650272056402643021776903189555520611271146314671703891577339006545286923272080811157875737499103532444669361653517522124688660805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699069924874268001953821752462105349862701061321590757260240804300827868356293198384271052198354727511764233027995892687273053118355805687527612409197424447633568095687484441045467028352365141527656270080436309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961393797828505779014996232139220462341524168238038894466242673730018965433764765036341251828509512088864856294714398779566559280749164896256218592671541469217676839605450082164216260561064231444357982306919657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180097841598550007055364938753212574961674875872583259925957615074339186228437988301346044540880817809685491194541193470268965059919860410997653211196581062966550051161836517062029288087760914984616731644268641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817978693064215340131633701135735635111098141821129662210736726269615672674830775248874448416766573702400485083937025583859101226694835806839154547916601645691486305239359779324467255886717416048550387114903176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491045165142715495423853920232526975123495465463090613294600566507283098728033873735155375223563183570253700649409263808031737463485403611466000484687624231089472379165007451797052486284672766337551730368736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042278844737169688950911185736926890336659718522537770329622016708106551812675800940852515068477579219138932138092869611953122090503801810765874883683178827814252786261879667606821977039093260067296151275571252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038243236907304310274062641777762657301034703384021129669084818046162496487394734584412155302581522214994582224994194195472564103175021144228086523028022134240931939327276781959906081125986239673394589896190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603880323713522245169681180597512189590028591797390866524495280407827130270045377437267855532504850397463757394646098408565893018482234161498658315034660821862236058019481145549035154742662660612950268784097547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275318773560890835043837081120882441759938586466309397048117253004020305813409044745051156377054103501416686191248525269493348297851018111472329874045396127540222219095844050872306623268888497042234567000119497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481097539710090849476830410711529550638887652490545659994260773886347394552511448972036104793757254472396602354774812749416069835101314764023641949146105980556375704465155667123652568282701574452847602207817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639824966294555601938731527103627201242931201764252246448031819544683337639946131383614457041608883422253715587835807016115602717754142472333152781356694009898004445823899842006407489589238923892752289147329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426290797218233372747669464015269204881430422739438838386988072365034008809524512726001361525704157749789546427459286696216415427519072078965765676204708762910259298887712834058061317182068879509627355230802280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991853169915158165025834281284874149275360507355014927516496556894986881445782807241540090116176936589862811374592790322578489093397688160867085700299534572157942098099722053214575142715411220939886987456280116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417244228370492060364815444971779988618739061970126506684370640425124459951909006226082179845415139874086156189246593084402747014710167254716016686017397691997662011119989301553540628177813282386798739883185480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772206929809952133275493410764068293696256538097982992215020076190656713323330719175311095376967431445827047452191856565617305618532166042594645538561688375993453276738278878122231537281113417355451707355320827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000685383635881778748642710688257878740799283418251977140842230489497915517987678274684754084928993864763498391753924459329312913808073876500505220066666272734384454049896801183432553499976250119217678755809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691430708824753121723137940372365928771043455446962665999926233933298641137100126804081160276969402287136507298106445252016551733860468650406212924578927147227426763861426823676408516411947662651437101393855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051551384109030902755433236441202253007704282111471419181475709618331378229434207254341031555828186693283866836607269163836967793201021420290468133704915343805924654711497083540122724100650394974216418866922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431490269544275056480384788879432956556048443391840602027045146827824231514065070221048519592072312004933717673835237093088565264344841946773453824132968854306302477825543502819595717543326873583172827933774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613660983964055202876699917225472402063960609642994542705915460007353673154988077390830015813351603573011111410928015412280666670587855509270333850098311567628516164924255092928303908770988934946072349028658560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216120205880951461437739476835388395047212945283498654808648378850194676769456232670199871331845545348373608451276718005678754235887195105895652797804537834484650468146951677538136951845103083239037496571621433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131343835699200489996180432549502052195550206179277993056424583665872167535192817503344992391833256236162650208149035578612440518344040381599135827173843373404529744999640599186566641535612424308001626179337509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597536508820386360958809040038001760475078669744332587723215438325998399864395011449541507700972822653695839438085091284110416290966370127424988176163441016674234005068361676482327103889422394820253086967222925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544890684967676489282970728115843511676077617260489135585109814789508429849836055936593710532020599790443697353401662876453206371886938218978015732190762998103612568387648387269853601294481607317618658066805968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624554027683509989720421859620902016210156519223584211948820209123783927557185605541656205455347196978661235058348962821286082084034973119988107725904545863376610850509582385030751284259642859749471596754259240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125496293898760722340846570950989432016548760479339467946851343732630392230933179068730316994180074048000687251365978579585994780199496523427286889887178135161715505778391587138640405789565918232137081400587138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637236591957119530302882485868478256488300525181260810354213518122471584004627510592444870583709540835318975215236103420408450764137674234730058822034323160474633043506281423210829487240902594764411891032233740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421527460232699949700615823592828222978328684019972903653781681600288411730673324496628384032435365041397536205509105219749095799860595726941384024267555967486377429308583140664803184453153290815321549434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617929958126080970645474650902342618403450108124033539000610734694120978386716277216137083614515110500772011704214057510295511491370255453350206814116524476917845869435403411879135071947286833389662476101183017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645097673374700236767820135235673242624788804823436290099963301097657305710745086213218779682807434398964835524271448757305830321802494521092319912041786298321106456189823450495054397161803039568512653801492251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875596261579061717590219271869723784547241129855757317937479535182955842991336928140588480421571538074685311302335494627214184400563239744587537727518071466016570650353750000780005476100367863699111323985862132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148418613127907162685826684720595466403565113327927292836704215333378156489787872434723165771081189058811592205341344776752129774635506551109801811454708921701244106349239492424226738349439407865465836386859700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190982909528829342278406490395339672008649956965447075211846134340977857777364263165869169876274954188683133247514531590023354409517149140813592731911461920067757921585633107612547070933961164415088007272939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003018770007299166134878103899189799277933082603333383340579193386012599266354350647100912606346252385743463526847492979065780017287665968256219468541077987421844550471048251138993654279944593202443898985134425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617996218893187778305204501948120474270520457321254873390393028668085392898551453951830701677372533915679276903907336248590343351476117870517797664710107502450768161655725395482009480911058631732989175311841603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185545498302580415651798622780164689374817239713381123695363735811057393910536917973929343197751880325243525860808275537409997210154008004697992794342234544768970758031314906549976457271996996280332692090891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049416564473707132543728313954096231813376473848894121827756876058275472115348406411192866091980614228229552490758852587114072134140163523811998912747789131397574682809342472823110218984300702443999642906444508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044897455190062298141740225468793859809142285837449414294668405678447862996873037366863397510139100798455883197189398404205851783126255609907516425666609144857660683679374480652972403709933396292834348332661041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951665664903889623415903428365924676238921543162109473965009869257089507504114157819718945799485168292399767685260590940847692555560320947301798892618229473834688688478774214747821124629005048761624209757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302492489038987190473804812173705725663713465147154131222056319569952971074484542325785409319607037480624328873057403741431323821583556267142756875575513618201917633010862837972585511567417230504719060873616277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274895298262045169437003711201912953531129197138017595577974532179706899810786979967116140647258355731385280378144794618645821634745203985589751231713640797468385145592041450052177212291446699278647652010036539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425686851600605859780896623668832012839653122703074654818211999482253881430040168114450362116720244462048282967776160165637897576349795548725510809105781339420347277448474876989841921828085630416492602991762303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873478656260809325645074346337233422408558581633853715306945878269202052395067272475369001398011496431659458297164868632204841795219642449832794880631346462010891393287053134556150378876921145927268505146771355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583808150558303401797120822493909503856609585571395374634762832404217519342656686392559177433783255482070386105633012623762876981734728224250946153189070215082050421810397748940765721499083247852854595100246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449603886707186477083156478758911780354308201318656582034354073422928347455769651498683915039761412613360789480997559164824906255168553679482474050984649608568188917203699873757964398001165295270277237226019357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359883554452066740895840923148625755911051962200050308020425737002899660124136355648802803399956946560958857632199260300046853975598028765558317107063997506660476148677763563226116127152242671096736184025291082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147960012167620168554361388753511114464644596594898628685003842938167759796191272999045913439604283622782145743849108066267372039815968331145831327755737193964762139470369487134483796533672088650760949443106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896168789351440485278448521019497293149122933664283836109583591179266973210503286586371961913064985733208661524319891775175613307253369060628944014036246735791686124190767973072153896099260914778003921829096605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013400938712099679922667327456972199757397498352955663444532434557032626027829313689388962967691490051117916415739641516223459624143879984997239721062591045242665562829601459679012861764153524786433047855814962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814733833330641513877132215173398409381746568333237521245212042635149480179573706485748255881296241114146469266177478173860156155696776808063542808133926222268057358604395739162738771435084847701866265316974888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143794129234072975479326476182962040361443641127465240436917542835856614059594332610091323144864164204976494795520171710865170698122416084821707217101649482479807749180166663180760457163952518386095827183272086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182045758372731652085922539947510938900121122194266654459086779269137115495078966657667654609628827777519957055450729792366620852350781689434003204754374040076217990918813510949939669431342798599215806292704213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669494883399735380911531026157275260615166467574723112673113045630210164427562827821914879246698975320978326529216825843304790854783365426975843307795571952000101207872401988134949844384367638270411742100369511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341848306161979946027048964895243897025843417177319031533093214798054202089619512507592936490162781474077322477257322019135045680559997856927754305465787984285946840858678413411453824124072065675598264826257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783634404283023478073545669143817704745089458721178783915416653092472697951952686392823300371685067876207877548178391081973218290478799329139607887417683308186531819994065979267822132271345963247140952946307619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751153532124112251505706572311520853765028432210158406189825700470439171864907241208917145612024917300437993499942065866379857873460604806192281194643315629256867108796971234962364061937388112180207379159818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206758299182607848524757117752420168349348194140053916463935218273710489150036580479259761583436513553494384319150921462930819950183591670942530265403298032496761584396347114353247143703922148617843828261138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565659895211301104852881693941568670635178319221855955305000298648325444774777199550165082658896713964088988056795806691606580609404851392801022276976156138260831907603324548465286614649429483966773300807073200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887386672305110123794932925976495748262551959273944717640092556185211857724430888945893130457097527295927394471764009255618521185772443088894589313045709752729592739447176400925561852118577244308889458931304570975272586707145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322744548950078096671196162151367695085308923361238666283481102939804607435534272724428104903280756767003377271120949128434487450813568822156033050438835175410814830375344342084122081683605813262345767754279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788520587318286600656334932560235908889835377725079702005054144021055946107207649244091363372278973994663975123411788366312509006141623227657028541048506797449812718146764308414103002375256537304952767275484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744191332394798552871653023199869802398398473198178817133310344339890837958000051319653452338339010909704447143479426502628574031518152035465072823118385198658029362135224379754319380198343291431250275776675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871416003026828372404946436034787690357332618811431010813218855279858973034505344033037227691514045318236187832171998898905508290896624197658559805783414287373064809852907821459411264949921965113612567773076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585668898203737054970452907158469737635558706092801201769780532935796783807950227922001052016768988732541083893192509071742888108107086232075510184800417696968262903923998393811623663847871308193201855592678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064778393248758500636199119677877532680713924689844038826593605108546523692226192724034991210383162262972411440835568680499807460483713592520753901701446937391640928648639190537573932945565367754356329489530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067216644803205310670913037594884345787343984737076537474047930809034382443397058305326958562998479383048081779750890193239788196447472813485486485639973679076903930252128591950959453303137975185298186626201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120272624773706671615372979623651717118309181715228052653759337375581282348642969322667847133869598876915809508115049936337356905900842892007054825254617689541647107780117586071432866240448305523642593775798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836534781106895005532321232310409943156697571284321105892729075626652983068346126881743502763445734873130812787853966825948045024450899453850626222815657206656259080710600907194741580643428961731315157060558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382188405781522951987895606499560698274532892273270385375845209270924294667346895933777896580676951285904490573991307948762539798998946853448670842763284764409804653488551209436064288937383710535155958795075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756195212674327358168549611969888258311261669505222402188114669306257495384708699586574599887892786847387198643837904804637462228161268712763451130947831661759970759508533257460284937400104364503455658044944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557477431542932903262953211497882620351598741254642288439527779549928956475434710589858515900550849005696903693994638054127440782720795881206109501826667505282910042864401159690915602602458721174560455109407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684807661718788752544407318658305011864756320301713983390078987542441102627774925945578726315160874870250480620381626062841567542997110084572360794368388317756971160717747601977362998608470922561241903344303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820294679958162439870593623917051175070504939244293712287520721004790036952035305417470268810031314275311744562464073545200130335154416116128453063638220620318271412034710573330570609561041999774412943789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438915947177796949351958346843367832214130374310734291743734376354415907377380776833554545220416075583245001412712899741014947054886472434158991296092282986240745516058914963102100059587134719209797239836831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353658524866103735524636051974175871823490873819774519960413516046880860827255906104828222575767463581916629034390705475970348090440043043333174134614234541274567798725892324090915108730592024279001496737015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629750558295079055157128977260343546722251875194722777503478062988815802764088305858873211408993562565445263256262930428543993328255032950289369907770549029470796220083902932214441126573820895685434478522535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714542706585174744459646823526941056851933737004914486237606597957437429493137628495423747696298423620404069903223286254828223354201652282912884434215751270602021538317845218564841150669394364364463390329462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258536312643708973075795526996850313206909183067913265420306400314824559862392657597573177591286253089465412516622840716337014979026738432530161901013729788646954034256945572630522038762942326480649962381630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603720606929534601536735130093516649047599690415348442284064946435783962739597969701199959968970550071398026714315391239146116135818340680876053466725530504223979280965662210911118477896503351900312819308140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347338410138588742805072514932018367654986544261906876750303979569390242134374752592028444937070321982409508528743929412781595864754303669533654646504381229553856960187081463036000681022319353567758842217066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779752140149169816134993044910420427417299073183796985131245595860639919965966899610800504940072963970989595175746349501131523954054363842477157673057968997809351123101270006068315601347056168842081862105906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005363319425718826190168520911094446230493872762260130096650980181502161161893149917554486648451019396408924245351858629668535880723702520862903963751354424084167679610625407745354397187202203898292588150488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521524754130038382417596775542251548689034984675846106631594198812117971334525092753070140856142635030152714737087979022966356830017879902880841938939224918844891176700803803875888780169770111345334911534802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614923135734029631365279127615262306104314092395653522974932610180235741449400201075752924889589293245803518893483362322662110704722279517896431135332221513311128130269965705654236666071242736067583376783519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734139362973234927591808942336565260939483133648102906435863118308259658785978471502344907874767879956674248520510401039997571039402206306917347420208969917560052888987367593966293674017209821954183371282339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139291043490275683817268404705229814089067131491526250441754527101123578680129893682849339139638336607814229179455434491680970664913188453781202579621552321288398882948309602541545158301556456231328450317418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710412739177835963479441159241607409649189238641623144315098433799999574123860845568790650179660465904011900931064914597645508744169170936159780546717465899301704137539046825444198493069773963033614330040322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190012845946074216074295710458314004620124639011021019323688746231874639063905184609082474661222258683171698906360640254048935087506001935383235847779777771841566927112240044551677054193107303883694387978890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093278986221595494379970630648070964941770800581227055933091621184400463589378563243586419106154006820478790162140445787717398102952607173000991217971137542433348822666186718059345350035979406261016945589487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317128350116775412896963401763368803347613242500654794483551600242312566460801078670258603760993908004517562600906555541309840427357430050066877433135282061707299033893705322254670042058896404652393614283079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717042400678767123685935372271091567040606219434726020409941395472013175524491583459442749191929135023558344041872069743458860538337018589765720622546686389914740617138440911140542444892418125280587378444375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804989009276466743181741931273879879190866705646017414104518365473639211201831272642135299075075316741860411390850791740441726580092889664003508561829937247213684341314956929570401981300160608754127957466419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663239728334225270656507307251890309039502297514554508141344442816541436441049217506227064362861017571711204836658149705824635780075504562645374462805259328415678857985069010580452797562628572208304783543668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669379948424210982489742008823311140013410440951609308313090546550315955515473977480221462406761105271613757998628354396966578355245670079360497518767958500434785944448348747345525999632392588201044528789576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507493228007094056920655442879928976809138532882392312742649637907197997852490903046095850203281301188191897987538612770509831126796867211781006094288603341607408020448532441414457945472105469892916649981941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264989015115562982779223043334984493678391519856268504325200844798554629691262997883130293630646337045033155263752040473922415707285777998802963532890069840076781896975635402176619429442475372564984572265506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814606174543313264489248037013462642669263173424435742705177475650675563413336005917831376373759203890204265171691865422448413609465986362677543332217290972806772121812294501776642327167331091927523377242450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492334460461527922287117473732068207379504077538070248751397369748722080794183627245792671586058756843738256966015288450159363605799764879554666897963172764144582671409839302605844437311832195273578242992380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617900985472078551257259753257687803418428239419301167647127802001324490541706871940608748642509924900412437779902567236238752134487546868018057002677165904571741675093585374663278466147170222912775381648935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115272252098855763180788086283744439537336386628913943990459186935629799316913207431084912387826967081737983802760073283523713057038353881201921780745570539213125048219766934063942802345335096980545219196416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206510049409786713024508960506363114749789754318632737637932022795300108771768440261821800385909060770293459786409329695112338532614945655859677117544246194620867417898814347780270237891838654750736725070123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227209658706300498343665718303094585252856298925461326079017237462336013820894764047217671021078363530632839185289426309708352418426880666397245435194987459495272368823511064759383705313614945233262990060613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119487461275842517254229933765619132283441361596884512305097922908093477806100012024307933675460695671886784758902916716281510479109848199687950537574761034383928929818347559135337283428884922853939659501645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339104412351279771742589499718132089939724094576305043817654202377493729292366664085826356304701889428471366217962807794758141064720396869005733588378323839385156436769291095321263095302372341887763775951325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356614001989154067719147406045020084890078521044898407155872491318142412374531473909585928549192619551275281540455554894860530439518305516386529635114358554267895788433224703032239846296940370036386670597551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663014641420751502676529987148414838592420468435150528589264835412959996419063836222550061620298517908079995517161428927433221628069635121629029650503454559800242920380661131224998757487778145433349578136558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276336610318905110863359639860709747374195529341785078013653378687767911514738332525130023719102358758867980393855297049983218303899853337353315103458044340257304227586826097239834223150176408033273176226319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785587565505751594286116131767395528348150808518520715479514392667287510574413867697189020877761195924593592908638396962005768650996293038181454912807341809720403203633667664994439199362641452271450735037059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218618363552047279035331753093607797787984708023902185958744878960745237490562837474189310268062804817433813001982212777060921847008152523271459867234378543104978390436493058607645357560259838281625409849639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976774099702847276682966685429084540520229190030343224718982049938248060751638727945668940849736665162281336948828583395313505021705361118175021010169609373728821746838926180687188721171220320673364983128125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711295479677781238623934934140085470537845837828515123279873088409373572110045860365454494530186810732937611086797828280343661333397805386148635943716350087711931195598480218289926777976940913930849268923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759156830362494716086505186322797429561365198303518971428760223750716059990468522702848242025700962993827914781801540664169179259696502306167496772478419474142009242977297138883251166552227303389644473052704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439056990939459868204985525831287644568389843421093658943105114075558384927893699740950138919882124799162098883924355873655545237536238906410726631365733868871501437667657439282983207346131403949526170953084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389143025289376673739262860646099166425839998746474341416395267773224693331340898922821352367160956282513492348592680407355181536071965673950270691353576343437674431172490845537767032666988414491148088848013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557427183847336205164098603931021959212112257203436510013963890649452967142056089086176982883163882838252297076581896118954572982581073394540172774978345406877641107780044074292966398079580266893129468908915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568307438429892564630240890633667606473897049687362677347143193464378269527837602861465838927893362323616036869658885994407170901438576500856237035707472881230042776474747037794632000554372747365847240261839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295358041284490195677174363265587334302844014814990754651032818138782109072143398374541509572180872332163931411848854048824761331564993540303113131971438856668338021766683608295032360405951367759271551656796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660782899695363498145223886600730147718791986416066143908057772551924487070829109767355499112006123175361847813176543955729503854529236536694133485621787892615474045615045230885311843897833507480699448020815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621809971117614689000137724070092348499633083203042973219675827894000846652350711551118348103201448352947448851886324133039606763958576623927274353864765533259261139160105897206949121604194384362769225020408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225129064251574535947961305271895994888478243531722562754131095998504427747535263888711892649770717055022010568232530711543895647583031225511628763968835143262728629815240755887995962098043946596889329519044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805722415068971855827765389521513585658976407301488111133738692458889098227602297339512441350751003872589482066478544539290551160492546556830179223635263775546268409049478003726847161026495088262069357484631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947432059951652915960087156521154612967354139573277516784434848645983391375848562505546017507922098835877193386013948967514833763802139034152904283626453763745808782815379047085445759676142103772361232961964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176641436203210987497172990814400037157392818915284083197422943733677477825870921871722529840693055569352258367862538776990371083298779795051691696299576070266248772561115321024522871797030937380056335405929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668245660428800047407292619165754409533650005445833313333486658197274927600124232382251718468930694085723246155423928138874220276616937979356634410450371155982367577143124912796231411501645288804409423900517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799569180129713172054038424909608736362135131097528620986224262418742435783767729126417918801376752003205633261892410186165130348102440068568086061104811294274090093752748578585868409229731577936688608619964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693010611464556489168050091450055613784940454369313485910618419330189545486385219860080820040286332226857792865947499006936075105780234742015035317737300836494989167289350909354212097520747272504366618800613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191086294136723600026941207127811308763653161522443351622669190123101713629501331698077009767031225923340995423527648984420891092439027564816170040721739272566024295837155710671685414187130035713102305447259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674768851145064913151861552462947924811159873110907977115298058809209285816227706527567771953931120357319433459343473372951899415721472276190367800430879590479992664242819620163009888371488450439801224462455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021241523137818733130015601121995657035414106535356384524396556426727217434505317089708620347654758674128146407197922805744695406849279599459045820901873176586616251787331296935726248763018274805306560029462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049953913103184653278383865626717476001806278875804925400887840392798564649645155278927345020015410031319050962710809628895237689828726513914081945116719591666318188533731279822794780963841863308123249343682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040774479919083761021111239606725071929979313651770673164504798623225519797029925665315101596604596690150887068882982527286405989514250476556464386139713909302025719458558252713927198113277588869554462920605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829678466860543779061338910206076538974678379909041982264282917135698004347246669699301575114953715204374031918107954868943240622909458623262452209667574495285660164657873688424654026560457697329001295837874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949497649100036934909550819450205563811224964796766249650785802327123689446228669796319715390249901099117672053296592010243274158366462851035194005414571907148638824694469038224568838850078244103925016359715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110773185810458946104627355807094714668352878352224424395195109596480193399728225441237291197533523339788200500320948307780662833646063246671001800870666288977157613180394453085177859979679161756236424579913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556572311289137915061078782367241706315742790860275826804832820482530595944865355305335573608943668378778877908835773316581566564046333631178965577553867451359654743792882443277617766529977537884432122626758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298942478242558064807664336180523774156314037893371269990081154608408142405869284464087423891245775193664669946373591584411931779500858480652805204513861789723299109646117709762971698805474148640403588839279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163591118168057356862567675748362796259542314440842686944417808465459001098300832470127327673251862965281011987566742512371854719174196446109963814369225276487686524296433284880267104880448880155910644769829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229615719350186325172175999942277944125127694916659641176453311307678394358755701511268339788077823089327672921967390656501679098849598999718362018377246697916468158884004015083264133901702440286390700883106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730559636348560061598496125351831074504282805991011356152764613718732307405486443870951037623912931744139267996447473236182136331185858040699365837776065584149533283266028778546968943002292685310193430198737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121256597621835683455225766840491652515707584146144132895209700930687290227163705638590610592169694573513122969929258356753188344521095375701735632618166442459183071917325928053735184818309872294562621725404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155337660714688158886146659370802181184864094912441578015869647372390959585803117354939639342323981218838583222690622730436915479647732903620310231584622821186608285896081690940900061896442134617344682521433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669981512196539671905138431353655032131380682424517348894759250312419248417525574038182351139026163553709368646884710152598668200629666043326715884702846725282736751363691589349857215149576969573937931293333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058956236518854268293985666712723058331747394679893879179844757263966997256515093350494496239329894118380951152202738593619916208931559373521319380127029848188296824569246640158910245224083340735294723767660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949116807052305281730869088268238012941254181467305845934358127343340746347109810169733784511370003614666147779737566767622118782539423603706549237225664751927002508248888604062234098115451133342239017736841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044704111628786526792010616132471999844823715233499783637523014313513282695539529010864942058186043961590530582597540015734752997498272309538705772100053964188697048745289735915687927079944165810494426879390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067322955766462225607265008320437346368920697425731014887778328145970055062112529709439551348206970678092045789009005563599319303007467104257017918474679952016450985381510153969617354552778043062677579487710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400180249473884247950763593696251658159800549011079707269532448861374349938844083661468592090201387462929729093845395689309155247032545649484834255843539275002683980891951243857147278892288180047279791059416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939570764107067895059052416329022129176157072028133796306498598823224267102982642645482279327154804587649921241321268182767230903475595793031158482489483014173171934310466356199829342266084524197727430008947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573673711721580999020989445373325540664924455565704797720791458123045061888066934773161154921352859808111096403564201032065031387832981444308563872065793894070562327958687446085284069806283901283199404031753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337667213835454142478713666653871820712848476170700280230771398620015232852846749805171600941770084830607816307406741291585704585798091435416092906134945970968892571056791005567529007475043799463382111921199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774007966612713823071408188284186493254567005047890235799834629665205390345267229736797112229647576384279533707030794156328931174663489962869105186047227268887787587979536548113309718525774883625499507808962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886494557819210247088409805488404942892027586325135120327683691655093337575687742311036161066838321580802564333464542717220249562180605935860577836839825461822364498335419919081817549239621687105280495142246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352812785194098401671972972706993221339071842095517824752068026846361653977165123457434030443246614781771199610855372824309171126351950119153810332261700960781979229460355260187876692362124863624885129035442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160867710746014327477238510284749466636334619417230160773629762889772512830025808468772653015168202925087300134621992315653871990410605507419303633901844423978744233849982606967605702053536845646427272703489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218471097204771824805672156192313199662763782820670627977864382255808727403553887557637225829990506735915414714947437264983978705766331150533421161217453408965415215549774624788862911830352604036873282202507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373598537269299262642666002172976904093229166457800802861573105013834059960521518020233746749329410957691399996766385217537464885072146422768364860918319733236392159249039000696788812101129746358373405258687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180433957953872113306464679928612294857139338563297616178508911558276611979023379998663577047496379682239935095795450820550511189303477935702443035283044283470241059046122468081137539970742874343512072417982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463632653061205961474109678643663281284892462172769906044003564831372701718432611076286907062962876782483372521816784952087018738888352668188068856155382102917938468812597592238717575687377663652172791829359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688929555879457553413146588128331024557479280502008666957169395778015341439067707468844437199722947314209624309846450531853965219060267110060566217145056523961676291582141003930733389291862567033371447241709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319576366026242617229242548005605957217481535593409253828324333447779423450894659468295480156164008840235503732349654987866217107668010625102744723405477738722823370632442234657130998335356361790451296645359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705081322123467368781442761854788305850058107851555678807693973242122087306618262009083050415060798786720780086387483147104679622180439475755630990862442443828090707516360392136097396719349408198200518930846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012425353942546083747346222496082982724724021875373415104438842714089303290396631705985272743575722491980439640689369083307046069033634037611356692720080172060165258701662092465653183217835903483184668496336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624682534709995778541481648466735735611338031920658221354967829629458379489925909065715085858992403687772470956022520603041059454722357343076199202003870342440222349094967180951194798118123176621613281265741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214420332378136469561291816090880705226927447850235794371561428549610330999701394772146061745007882475417006791781881337307355387867960101242192434173987328976322809867622937453437289981172593008222324624375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119023663625200616717734072684448767087078633992885187857488689069559520575608065535972362554866576806599730026961449979138639491376433439511781865616972457501195552713987666331024199364961593673423336765935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912072026225055993021055200593642720672067436580819591983894686241507538027516566228260425584487236963423152737049647360124729374705823518946377728760858627139523599906922325870359910709275360771787312754815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425079168966493653461066490303392645479826245075275297035511702938954939260502611673280508063619113504150387225535480524950307259220832129916769939385789605219190402265932968932015280538558488326767365756858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958286013592876613508856941307268952706221194446570901350002850781700817329693606994478080116508997746983832753354462231178900414244561256592361906713778221883099012620503871386374611075471382433334260661119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365413924603252815139106025806900867924694784641513774253049081133374859256590325210843787058369018030593385329700109696000874250448141845892598569653455698082723712762554004837927076410170208700067585244432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468053761252878362242163181476420476433345658692429156194617414792930326727453319879627590510582556439064127960599605162941055835770035365632428567139724330935998617848544097181817255447779140932095918405016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512156644888145132509782997998568283018302927181265875799749152594214260663844934761823669436130100077834745045443839405946382531641746962167963754039491521160083553404587300703416744768853863537241759119191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924975966878585576268728363857714282335234665679589269485489195448742419522285402758101327257258848460465495185162225272148589697272632895152661007419195971783288365945597685705772628478559544883724075791628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389817904863646490829677731508367769973355150741700812202580538852451953639834531876177812318292338451614920189467872021748024528159190124225586516987472590215507624974912267376594563307616602119434840323979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018694114212611703437224966747668259888183377748915300135800231460242604720552757993198994096431611442985283161148698973174864230826264934163168452780162228694521765248789069955609915109601587941691038845956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281577318511859276331001448478115773051572774116363217629955597106437427871640408298307104630541915599371481539161255478112643743890397452120735757677775074211505082981008573752383518383575399332029759891578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727210851684706739011137210182805804603224791660073832691454159319829243254337464860496339653422481729383254751114037593843778055810026790235933847989586548607874194141688407304341734969042406917428958291133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859147616695431940776934896555906031303415790944551975602966248754548790911175326993709371263806722567514630607402334459831482057807785525381693436480535680794520453868887221458052022813716526982011625061657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843766240091747190328339083995367474686131010932754508537010324881645635754895586036799189361129787619083567373122748237818270185310642630961347248714360549318903770261332912020741185702039654923368590863272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719196620859931129697830338865167585446227913405384476083942355534490331633000124757996527616852631945329309596273131467261926618198321945664800489127240421657304136383304222664897851556264565532197114472973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503015339059776478342890747487781517348157362688287288473096086418866453032947600753309358538027704926007328843294119520864829711317593752534438895881425554838517329528360113779153290113357598117475908082955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955781800595875717191172323509157871375153991255150526069594760593315763509091797733208336136807194551564074953303571884225636931711834397325160573650377473214535005635956382624749363822470583684752142607279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199117764793004764932649152190991777236255805271272577992841862212722025947295783642415695183890426186293194985023980882790182277086708707193539801835763828047217627026149024918463402523612956451260017975449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407909464765381655080500179673737431409908947484169143006508118210399009419171429055442874348691778082841271632833493337387601898051923823637302197650070299199840953953640819293935448443378672525707772959596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263982504447987947755138368875388820775721206353195865003008391065447149075492797115572184609015539457332518638981285824687769598008274176555499255652637871847498870632914943908030741726036758968025487183739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033326470891561955522356638062641257479134638253749259912880143126144362011718100610472258584185002863415621156884418566202827276600655362434165318617270547046018295233295364896057333074530647300773945817405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229299977128484739924791499752469757461676524013339887118993502919950725940354177678878427586317338620212314331223245499952102264641917059020637215636487044104269833633331382169588483198120936936835919041149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231919375790621178580909320588479483630579561215601056518207521648952936475049978364259687880476092599970186536111131360484481043431372673271493251764067795912827041809284099302148095745786634937792271213755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975531338603713165764078334088593594573767196740862525180978181788036986011661388347129991537711238341545287404899564690282603006885427634518962357355461815822221407196786684310268265573811519493713161823492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201670334401637519436130793606687706059615507458187300740588554185707771293765395461112355201773745267536502771236010262637114085024937545199723881184972004852954076053757550486334985176039343403658952960860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113469807153506236406048801061017613964306550666466714597747927512750131334659676463960699440570311860560878122806328967816576537275062967283576263974828384647295018917985604824919850079916092323997667196476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758311954624011266194893008382843865999999283333794876598213558839333097596539435168747702542038052033733823178938782825430477368592737723574788865668587360925686910563774468511315594786736516484921786038920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908705395262510961272908873767982224107476784882990262592141720651354432719916459983330333820509702367037918912977711390002179646455681701380894182584629598768936359243937980370126043700019545375320947585656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345060391086151194883142464773935945361134626325397903053106155154047570431835806988891168508827835754062604700813348942775641988110461503391081966974360385607326708715608776658858910608960720874715826970169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292413015247640415195327618247072352789772769577454314914572040541799531857883749810850505715767111058158521670552201100240312147171579846458543324890734109876109929564967615654471880624428493371942227474044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976032892432451053029825051224268070373121280839351220225540841513202947999805751376864933655676167849947133492695625773907848371824828315567929819728778686290363105606858009907222402153876614713644801965614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605346725549561541898838178560292676908506131365952880391735556024568797177231060321745760497595023225629419637906309379558104490958762135916778658295393030657653092307043986757062576067142706385260554759595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768547745929603359227262526666835217070318949628272456528458241425460630372804077747979885412946353979992464746913355243372318304535384890808089315251813576848527285891732859174645036561200688294705032047169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073555219093758657747362647369928888127978293339349986977352324137599315546363119298207065372747860725899731206930627210401572394384260875603932638706392902219030858909877722019855938537268814793228829223698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939761270556240876767140605906275936789728632046558940753192715912951170184437557585352369782060346030811140856162220429042890528709348719387536681994211967871603447511656321704404160535134139017313668946388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730184599840879909046157493109861431331591978406063568318841950570759621032685084075395110460713677431506318655681175045684291098593609486346869593672277580773060728837988142468100342685874419533203422259222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848043735402673868444648250945683719869661983308898587835257932328100478498000016592407290314660281505647241103452031576527657717145051080460305129759639033690487822708390133104005385149373537497295161348972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115133434232393928153928575524189254275336899367076736032707695340715397783176932998580029024738091222270247003014973214830993493324188082111825695862329465185756368975416357468959866026651728710637317821154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731562838649486193104350166181226630376959372676458853838094304945302303026801421097550250389072148424600933987543991538384213775459724640986873792660279416620470866328438766273660878272150035989277651707445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367241231536397295203799561405420265235573318226053603015161076727016136677534720210899524060190190731071671157213153131399108734604994855887930555732907486675692499177914777762752572153315305919154375764020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631047596189330349094993072843240900986604296477641606362128947695172656741692210412679197620262917558530596160588359815094381398881554647395390022108597871859240596478027678892392428047732324168011508809942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759022843450810248452324285061945646492828833802467453143600766539393253169069347153411102590915595098099960777108192404340081740190904995224169459367084155126335044683742354082912646538035494169538468719159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861375086965603814411544678174631824157801254897625802405672218165190255256466551041784031399315527349701282746407837967734310395750011676435012323921872173693956157256120962946586125817922599712293601560483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249254566092255047367866335359776701147547793789512216395039174883700606920832143131056511403216591497160545033152608756244303975120162704447566549744508291084491427532865125788432014337191619507424345854267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569167712944767701057362851752692267386733249041105761883634334373993174057361935369077705806991870011038755068258651233963419298473309667875732032904837005690335362168372869158682248493164586413099556128076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415414830530440196754581623598606346657273305740334246756825399885570038420395650977199541002683762829751197071569287780588231902617101475800897373783464992100430570761585953225073361087295702715074312297920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760119678185038367530347047000578748360997590909129630344182765505119842942611742125017453108837615277210320916233088335710208577216259509925298643641820689439656908564775124318290301835339510911467513718534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208543277081713993729713647285516236910280943949049809571114798735326336108615449092136210719578627182658984645459587009069249248820523435112868738626912529335695565624401533344756716240947811826571155954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055597917917858281975784812372478022962734271327380701712131593454022544168614641620641854955622017580271717419329604030724285575914037487524125583648684782653057902112930150460093009791132893911020928422212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008230686748165992916214204378559690700839634317491570400704911133097023046876615857483135080144475992852020727860406246909862458183710566318254920666633928689416422316813978537417455898355023981413476275686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568346135550888143137449856363777369433473077922369202328195126019883348531930841391296921034511566461558171845160918653048971195380110248525749893158647233999267453725219148787799788807562673750638723780564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926363064557919103281746224652305086811453922379034699935761819228384117831112734266093171716054723027485870001047866059835368762042349093563146793544370070867604441608093430388964169122938462935021661100210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227810793149777110353425543816635050218200475598457194707642967827158772684836236111806592445159528291523018180897167227176349652283750680731317414453350933010558621571973367591051672048856745415728163217259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712962345406637758448773140658050218144414570121613889442942543012726143996039751548809684175388778709977105315689605779553635967007806998565011955361699581910918533374036619990661867745865365937828951586192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844105959758701053837837669513414411711576580152919723932831823741907241827055621142924812595008621934825451856553970125840647774590941610778984486679878798360359430670508264698506509650714242879841665013303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857745381944142354918783809292297831844140223844361123221688505624335418588432511544720643284962084563281194108270588318935428845436505484535633008842668569356364289020276692308486633611829914298726387988068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416471971731779872683943602401052166101498152655416254038545177952158400249587987974104952480047535581645441160796496743747671842211835815737673704896816576186466844739957457386389528495665189574478665977781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345776878385607580956164533921688489754259830599175376101323206354325344240488600003090822619003730634184868861438763736494178874012048260950512759863390509770242472529801758826392293870793673252211167057926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035841298716228668505324603894356500230734167083751864595368025275824052092374467657335127060160117034908068222327234121408469596673325161565758066590243101303206411537511687407756787406035925878861719736349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356697808454878051823199575640739788317702711356439242044520333007609764367969990040958549556201313584805875374947256934033090917283239418369219324915186872354773939212756117946640185118001380750102777217130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236622477073584885055861960214818950756889614649864710858464453732949655233372641883832621271178272406932265715707864175572896145338291644891865204955272952633002810498231098573394308160225669817111505642180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924575628282627813751332708052945523221608454057654378540071799081276883669537497522864067146153456490112693874267114036215138204775875494285657227853366584872908691749510102375874976607230169518573650905794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082522858781476449540661682660663281738590646817084809801956309540191002303038377210748322781390116820825823892779361395612062162133915786407904096277774306239458871168135932412443371094483087422994896572704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004822149073557310114756043910764230704997141717927224988936251185377184456536112435366803341583471099997812750459310729492016400404387368910848900002206589689495098835545433034480634690683626426926225260480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933481726253378578369549688018197142075830479025045449329434408065470696670920819668718095745182237903331168666010658854646162225136807558072817839904993820325403522221479127873573379240505817047934361116046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483997821549752696200677717461253751774740807704214694980724656692103138036559013914463193378524974080770421469498072465669210313803655901391446319337852497408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289415106241711117589582042138226824715855862315936615312894151062417111175895820421382268247158558623159366153128943219165489282119597622766581435967431904693189707095462549848023495501869231129366402929099667008638784004289044208624836617790643020633059339203224343651607943257024658684668977153432807721709879801181485515792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487629262732360083125256996543432189374507796744529154278947127228947044648131474412422116659008100572172330443870087373605331646830292870055572001906994319987064544655062428217271171245920681242948105505040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911768669194968381351509880852095827679294878548181584339038957648028985092572460862530061488862865030657198657936561579559825729918943289477161896205693546728054418563501846263442674857155608884433767767751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413331195799335404233357735889637805318390934442804922703521622308714944360673004231179796828639051719515750520976559027309967099890200513002263326473818452023997691129524606155729336699654182678756146447436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683683340341174172433613790860478805680045975432893327214060803444750328434411461171909670176253984282266864683881706100253649900743173847000861481761643196421460919937381887765482706997939841539389749094610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112158912678328492646452926571161151465300344961441304070786937141792331166624769640876354873990174775371020182114281421448246213204890136655231442441340428775298118356673485565936917962558531536751079806714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862186439586203091262195374593191550111691331559547339411720861353588405204585927360463219827022407154206140331096148629907590810331330659147574953943653870184306530383427904014305982988109686628793960684213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151978601094092210039466239381000248857808215305396412362630356804450233024794334321344188084314692816183923682018691893983933307825793915187659886158526588303130548206474199238611662169190459756562533363184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813841726621715323622710802784181377459609786557245216534926787608800918807075144517955918932074648407619905173558584889133032806350787970523131676769315773731879594907212372637992597153494224165049186095916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493355511406244664368942045355237930229556990256888924724764828569879277717704395843692472400622209413255549432923268062651006560671124877997880399882214586345295917166624816532287411553275264112489665623653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520818554997514915110169914127116084454009076208300514164618825529634620360873716790190582518946838954046826629717486680083930295126077669299240694352257774386318127596795069437001560625056278559143415124133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679866612332910595279610183431069077020322287162520836119564948117529971327497305978355285212857854784428618168525710739979164485073794630194794860109379383640540030350892499489138010893132270306436604092136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869426066361431450934795793642528207605767366822455612779788579850905074655759995233257680197851647322235734446612494779990642933510320292417061814769571050772801917271665422720280245480655682926562444571074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767061773311698549010053252658070039193322183255176221950049560232954318807248709892249330737590455348878518957734282512509676519718567996529101719951017464781430278133357169564223193407571376783460869671224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343862718373919938943796958561167126683833937598558264615427978133179120578291237899892276277256159512584275400014463204457910654686673241405336586191842804226258216882737103215382122900160538955574580481497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740861389260374365455710313573097870305157976741864883330833346830617761996495333234340591686783886452470412755314395794027884216137596849182823286006692891160507611815980980572296761164235609054782755309990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997271532487062343247393949407436784904172725426574267589518279602033436226061843406548292910969473277581063150058025056894921339837057106195538103699251006160450062319589568527763384145338709215687875803212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003933269758416152741868905281033962277286801457027003189627877077513728951374928538916013451181479091212455428351145074766206145020787405527198310649131950843193937940513935608624487120632823309725631065680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360334694516082287284727522818468777375072298833913187683690263824493488856434606147021410159335537083375926119354381437532583680506869265160213196385900424945026077793289829297493102574748519154758212368427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382678717224697734147003033770948629424678362291721791257397858895723049380035859123639968963121613858310464837079637662679929761566821198465934155933916744468862003556896518406189650209957879494750342134510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432822372098296405413984917686142541135780192328432235662201253375699710382103714505361135215808754432588751773149812341597900774841548524687471869828437164277567966121882258983635864612337270873161639587829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781158812544500275773489756610693699383060028442488304085568975649116156938287828620459017159206618355597055735021830926911960506871136379219891638826470030323985599825852973720675968502122325947960921370133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943287198367100185305221100049935858980934727278261324522255474466336523469026079952018829848657929356433410586192063576580213494971238154233326330818249633020386361806074300789362848049457274765559689769047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535186016897390037051140387216074925657286694144634342819342201078799444793152890807044167837208591403807871920204687148954042965778274232772630067548268392572047428956919167600520523215382114088732406797255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368179786182637137747761899242139647546815218023565700846506246212580093382393758939853525532473703072687613186932612577333372902749196950150840481799877283736652550640271936147773259880890814946394227307546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058561742929711699372987985526865736798162230768594917332186376150773517153378053363994725317379046703857552722373827813588564532376608389812022949751795849901416896634521878608358384118931384728325768648734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323101759183786254056596253994854471076202385234083415014218901838963027669086460628899731583050006054166105211261833245630887494237613211173832359910267154433339809030107675192156068609150992975794898470913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978631154724719046381308270269502715524345837771328888401133228561232764247580549141453340043073513682001671030489674079132204173293655886380819902402504247589799061997394494240613938590020437450817126160362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346296154035289806984981990238158813249007282842031664545864518677871817717727792832125269683229766412454967397152787968043476589576126533852457391513438137845005187385915329634140536894844397225508011960792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167585566502026142451755202310518037979241601868165327213490744741879263046379357019572546568707696490256283113949083065981392587716575343290518298830744220931539456267189136509327785275856141886915058431128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375735033502696791991003945764850313988998040534762079799510355628009427119807714138625374689420067112929037940211050993128817678635571212882205845259023298827844889728557676433765513209837208453651972735662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301752946970492860349352376631937758153126911215712505456493662840461315754932343616114386894155191795521160403279413870405973659682877235554936953672492603352744989288822044886844365275158954689558858907183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091137000500451915150705020857447053203113428375303964506837349474651525431616406958839656960477624810076981257623240276563247145586781166535633573841332037563285771114579477361177589109784495974871345499454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825941848515313457700649437390976420858957317742314576728829679067502992231525732869833026341233526316349020649042970821006326488156767632425444687039213337678948960012513626523547256517022255955699862842510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221231834492419076374715747446252159745764663572427527952228915040642776786566115191933191817830567164653048138101066673424591568641744576883906241920186541022526697061538909990725499842854841956681924545197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455144689645726938231665552509598950410934253743085999797137004258858340304497267109629969763233607776743734798788356730102864713845459287916374901454066475193948993522123624743661317478304868846315160365922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264134662722820936532772839766755726728973193812934194305723962072329200718638674667030636460133111116425468025122894305331125098538601201236070449699785210958598753293032771622679823055107676926800022074188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009565118632607917338991262772072135161752222552418296124339628251823286968625444118623812330640345331556016406957472320383651456635574987344116859941616551824960425979839267816131483180902534507164666442670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780014182019981018139812595042348662483440439211364872366629202063939628845314483748901026084036148407312006741562291596696366940836032643341496371209854547525017736696019714617846451555599416726373970858649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347272499701122177816567984491943322263341503385675308244677341045503274285611574553874214000719284301774473142300983657607515512777962810147220530668174203505967941050980466563136377825172470914099255524710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898010442935708329047220160726966046198426077224783107171439093492897379507505647105380291618749188699463530135729350187320668731150173153109129679486254979581512168220757123189190913833835344710236597944808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284527681893532791356747403227351506890987754721815574998488346694622271194343513957275609331877672157428578303301830422251704963297161229683675274898329472315069749788741400219267006720656772921310849357294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139925339921794157647985347081786361137720014085708386394377035291834974037418351162237004017318826939326308750548756645290932656650302439445362272791708003815785132529023651056809625891794240016387149612121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860623959444184972892872308495579260721132977121372388696986360236829162225464710880621094479132399015406678160289346942821550627212605417982917817382489199733829530168266790617780135336504718863397842735335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563048992834865561541540649512210466103765481806025067654913403327386294169117762638138347851183641056999660949202044895026294461684668551060662420883145374012687794781398595777699039877073994170325653193556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765561985237527447223599272020602389167187908147088670683027939897683780233375796837484716792042056118846144350842383697378594825884978259521414316768984959213193894128750695961491932711470358745336608149437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552529766106507452713589497334474072816739263486222629713471555329362444579946508231979087690744585253703457090077440815341678638701480996741240038378085234273977881746910805353305091194433138730408380430675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806674584246966055691076975969873109507845182518576898000939428637121910166980788517105711446695070312737069620047300356753682352058152491868239083974088092648527045816800639153401349373525471509235270441619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915621939545955585570093477116811798359958427981955643563653093890509419646418892434176612177117545737144294027293771776591831074430581515315960948263506336557238614139208130754146107405127413481388906875208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899755144190511520140241876289786882338665288749564740110724599055379921751556478198091849558767527782808038226298180439415639795617256940909295185774478836515944787206826785963694547637062382066962023966206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764285213215158837171464854288124231224684028390561577968199897855625102710706283793994319073579797536228737199478452103831686685214208220192667231558101173724423756091514893863436665265794260371682892815806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535070641885719005949744467974174202521309472461919502772132372470257029616316814647621846436446517995358777590480917246955673967945537349710322193694559627789377919383406972537884155020629583874830961954204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676982147531337315428622151551318140954149797246706763436976964583092867952120199414066540432666834408196869186229176544103649208078572924233887550618098365912226537972884111201306910185760304983295326942141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233799697074820024375803717921807342020805369357406187656641696077391209098134947021207251972136996423442093054784650692374464904208887326302261563579196063092369916027823649300034497471237794559512408582397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462114788603518040297656960584867175676366593087480160999279507871789131042038494789432860847970515042833265245718864231983999328563422686078834437453092728931460925442990607871117367669598496330621775148848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489501430231501469612254948953383627569448693046741980229225550650874297727580760951068798271091938371422909682687285963219428367272424774439090600368048527845438548199558287433441890955230992659295884828977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737317358162222944554161493578714775062703761924980363844001609136117137295576618089263864679402793656703853057799129885739447837576390926794433365054967707422859638087218703995827147580004402224042140033035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108954239270965425821958485866799241157884478152195574983222583356742267989600980320093548651085494676767134053103434998643497580002152868358357213659782084357326046612605704644092005206437488086840419995854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482810600219159446927834603798292688186777848837827131481606681284808747904302342003771308964647817855994618375106206884413586284506303464419139428937623547427775867690146782289070060926832522503246399533375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649889513869239612612753695920602296900874208347208408331884158268380193833589732243351364122443211749794047668241678096352035664154332541509645019779105414609437498159904457928380288801335624818140726114232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183584207407484465733978384298053471060023742199872117626833349092090738653379590749280892830301072075504724508511833346763047598206617899980044627448033701965550213204413964236745069537087816973799693790616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491990574782803262998612317247930503236377058456987857745316103866706755584406824089105118184290258032985140961573315387563114385477921529836638382158713588240820127783840973623264758443526302816647560799932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326423390945448086200283535262617529818355252978804650281353991128471612811534144603897031654677395258765383844457461103515616418092733462541422179033107147203105992949538959584368857734894952259821038315964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487247848396842037423097589988743878765428415935659735883450609361299244925874676915428045981328158258729991103007806315924817220522132060107714923366010031827100667272664889495509423368979354810557964237715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937562816985753529253902365681143586553982842832417000516419900517643835120057569334304218029315236854114240598680573897377172090328164862383954980500843602353585825546188559424426129289214341478982670941767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799148700185686745544123195735187123793059951482159548677010540478202585390833356406182622252080286486668097631561071376418909023606039541245535703806675356765247266803675176738455646966935960226342580015557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127382574325190397829954457674305752992830286341862425450224962419791639827349043594113958984043489575783324648221652497253318119305558561405031050765485899155255426528862875288955457736787420297703784684756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643672237512574076638075779685938518232158037901388513245670422527853876610135195682865233946040200356733860252055134753079007468945261436163812466020943396881829985725346543552854046361041312149937692163026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473798867079692283986937508881614607383824642000815393674001886257307369534997308367252810149430436456349752135453195195003507648237036184538497563616339744294309886387198988081880867474958317602229846725019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630917484387855063975477813979761471029748052589306922166622252353734490113539862660281419264762937097680131872041406668762554595422292493849462711775501758620213788767600298051574112378095519278181590820663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321077322764662315226993795825381625074119359925754347032075189639279292162309129902590445512172093189661799346949541502186833770152207591130088868902385799152826398678246546088746278526226814247331885885724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787896339821927111179243751868381757621347292273048411090528931273975665464401599108920563595395506226849034817783401638880747758591060473586645607299400942000631204356230811649814551496555130058546117355240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426542474489895459967920364424296652482735068799649501574046214825111167401638128823705492676679728005746329061945617997309444872374670630628346193769263728437102506294302398387471804112779445151821086400015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391071769738455787322413300300055347195116690125811352080156303730469080930979273536585649135747113509044127590764902991938820082621739395928612333657297066464102705878385513189346579626859330479560260115450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886881774062530570060230189829110915340711775171244237036436371589022011623171026356501302439912154042701273039166043485289217176780054435379602681447698747940557159937783563996621006692741927146810896204073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944999168309449469847078063675466677678253837230405284892911730548029893106132822852430139744212784010822979922563749918616190953950922923524038726563349624474469034805751356594650462503096250111859963630240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059683519608809915500540819116094261561779964945557389362335095602169384530294074153542201700885059341080215377441689697655239000700113109469280003444356063607661310302728738927422665249899098159012376515704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417928811413277329570523323399878009160267002892904670034550632113551822596454563655802704621531470603214767803873454420398877573153641972943746586782763362311198646746083171624959380516317910160217431600363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928314383120189325251667689558973105180207091561282127947857682315030996548701378014203423508621889445113091741552012125037797657263051175884455791816612431914793499879371889746676777827243329227024826454802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895875993816037392940818983260231197906051459780384494121855073472344404641363331714829781976698669655140051818454197633105563504488497134223603391300589797173467823734723292305173885050046360256819980627282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733446648052417888060677311064558841428743120553686450754131237892050164182455985291702855298234917568151981749535650404537358800409736931002101619740994088572336813989068523058021522578307985844449884900267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042460547885994420824018091973627117515404746563411804862886439875110526018600763208664032080058809812466828727691582888514535559929721451343188177166455645026663362751571422612127028290235870314678624273023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081207079728796535839232426576733921443804703617065295956729932344168693092018662571582035045922274601133491784768678310636302367243553709325626949823072618631310910501643206126742460867916703779309406696071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128376549304312274644597738111563966740927499199030967831570443792739641666751097892640931174682418788465392879439142807191372281945062111996049420141675675141552265693285969399005410111647767529256494404287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371850584279038953949613459869455343321733883804422922186848247101171485158347106099757869761968160124373302306844692710557893261660012959934985974917184503344610562408400109524903112915131020735366066991425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606244493185873512142860108581558715194193976552610624780925408142475964662701919437855071869834968769265751713501764020035993835301783027817671022024492886556546201055956741577115904728583016542256142005482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782388486067014463296368213637303317464871763201427880067424934856844572688678255255509250061546975828854921081222247668229027751168223695025439873245618612099967380501457521453467701080259152981604212231163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087861481652756934254915758254478587897790042101592801135480971581549325386490211513898577566392705820047833081031935861720959285030983719779563846649873345549013365660629589933126670354255179585895342556852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434799181485403175216153188936016989829712382727329618815135404187049273485262656664081364863788716802997434199218404526700361558020387500409637218865537661056462525859676231120914555806149237446224865590525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311995974256373924319368360663346878883664893997708709923975176942932704315716340505835198994772125986124659567580313640200779332879786511301194767901228493345593727454467773069942456260202388754930902233573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627949450937574975809402297195543701438592212160580810042397438533045434671191438712266270914012615384462773661088651827155664020489973871853842797408717803985878574872168926362934079370551601837140508771496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506394548386171545286329870074344746461465034144602561936493892557193423209623857284093622072055176469825304006432287560380697731469996601018610184090834745280892809833912909149258303651173029967654739251518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171581832063096996485147295737236946479442548250144837278643035426699644315398152771686798446857777731767242149930635976518135953927680687103230458025191560364641845527228861482514597409299719945291059983347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858717459600200884576448251903137554808601794034109441898837265231940718313705379983523443759548981321534240842874824428098988804719710545292339984765517177514410963503314438415742836080790134130163961579445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975435386415363938173762901822963330494418919406597305753851213398627564624984703279184151114912113525010468511900896117079021888918806248825384228364119065587480883812073123231413442333531444336096562719210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598414916399608724055940589740951851845370108423911078235447953897722079752261759973799318017660258416783458521545313578584209699130699520991878609886124440106074119863744715309935103342861637568094850359275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393676110133037840451130783799704331160533262199544257703071039684397527969197308128025112622360077754000513085974983046454049513097048034261383540913445405641341014621937160565528044484008804530396494929738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729738877148353842481293119168316060135430299784836863527731202903029710778302774738958134651942756160667428436070204002387686104592077696567626787819706560612033973047229654813734461913219885892321867439123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813679923869635567492986511324827139460731628550124132311737264877398296514923426741322472886328460210413669666442677281041495943027672387634286066448079048426771915985645126086187040257274427745143079017361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421056868786356840858920119268252437039035251766690092384082646752617092602697104070471481531020573979976815791829812892353041464919875936156322124516827461722779681573302532557352230229683398277994160348264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373131957148434854150415172347068715966588934687947761605065252053255188779427620006779291742862951480363937155624921492192899450678409720543460019562984744096748624653637113020873814175483338166165615185111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904453479867002570776217413802918927623452389391402805293096864556020870747502963056856668723977499859113562083485942647022385403313966555122940520677229821077169887490683123218656678892534843739289398243039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327676209298763615294761022963864003909946651742860527160651172140132509592705592948397361299817981025671385331771066750331317827873251215013278377486502070331355062275581304810800294605171798864186469383014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255027526969519670742351684211910982090147345534524738516054502034488652611948457946739103249460175460659491334735648784812681880187073525918380839036790727219871365126911287379537715995274134266740529860582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371124118334133690860407381821867859296600601526097920430269051432225681436574696554200716104926071055162136298793005559121326652543344723751548317961256407867774243070700876622029181406550213601916638438599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085841410659675196043240179858915353244342336299100339036772618991404668102761485787215430327575243593205031171651703430242737608232710098962149506384969100290257741671365850448982075513534469441941851991214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342304242040017305391395804503405968044825751340555490464163357843816058868602279917915156776991848385745819789813620129705387867266068895188507220074426102970737128356942669779338208780912705267402281903448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134526201769594003458673833978234147321913824997499140658967734474340283580315374798489967619249699851822401768193052100224551085786038469056876636412890897515543665065616506192218185586063952563520434789459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441902635580211053579886653626415101464607119855982928954907551481369440936071764942629103403817182161439604176985281732820882103690612597704683140598765898142685317003106627425740828091023311681597595865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466836256169083430972700699748178242457419426260777097989142290035008433211923977359095594574681566469478110101036963569468678903093375711027620866070878210655553779260881641337529391559615391062381538131481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388084101452159329887353851807306981009460126167868930860243784986072082802669244510981539169597360182132879440792230675841298484903656303436908701425831419899105413985226930754669501999027720119934380998096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838863916441375939741779799619064527740965797692825365348782886469722536557545252280316884710392694299440177441505654108392481853809722462655146890300020782127549450527915436981754966618751347831918657412558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614252596618790194047452875733438892990800297698778930869873399027324722936187651932972809463921588010581209173303560696088255232179700576000415904488179392298445358037974607129470760820065151683365645124128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890317467841882737621128226150437357826128239235832602350621502538812050380876107577923411020066388359646169318157504286066212124025308127579700257872538449057874024076775176118282802205700768033173143733222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991624289946664158685700335897100581727461170013131727201526453957506701723887331443852719496997537245850451851121245323760092430472399543989332763258474199660212612529805661849768230504120572683027889590129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068028164763767861620499087220505717926326447013802103274475785095981537692794373539955990692011086845727615873747414978132199221009794636168368837698006801932672463563313936198022844660290825749708876116126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216052865898969422570963534549240879532449834501523023103683349308340823516829151896416671575047629019534676550504543318915726570514987763841490791267283803179053794039065513432425793133041324948076088104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901016399352853501057299327718394468786490277192411969477667967432169166174018371906560463900076521196114835072075559291017853787705695420746007253475463298759180083020271502977497891528398945332554071951666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379848569368223874903195490049166578339743669860918339199872371947258845288725401284645056630547236271099264278570245829223730422001039892514376074181197679980049611584889031365744048147277693497933519690791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507858085348249079437151059318692320640496738656353128130407910722221357665482187805198585300198832071946026351214279937006940708565595872468136554341671216007026774829236204014529850560212244185483378259554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604065511839707202720208464020439307298630013905543486080572720871181258779384498490437052921037497010016639981519494762949998642849373675253631752188331308710888079788392417704627889360773769147013802057889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888374232113471060109204939561731748853780227314662884160388678815342375391560037740786683286939848348080670719236001585719202923111341735102217455941199598354445613756191796311070401804744803809438397548267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066265433776452183166172959235665505036298871193560120416793837252007715931419035192724580169449393893968861290001191170558851515798078321975863643962234115591247845187082904022020705526888567677675720843301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573319387182240165404389424297616591282596064556576789626950067545766105749703494720985496417221922641518102798911059033065391546659670220214954542925225680119973223318629930128897726005488830518019073656178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249343956105593933073782790939544010805851085381144126655161542809528681170509607828910789971952998934216779462002016998984965144055336949093144156637478982789278074171170977983171522522769101762906375367829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477167988940461720890124337095817160070941224936215496495754923913389052137928481325600654070872192952041174511465783621081106242854180781661949418458010948482260635786400953180380553175259088246744194408371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640000635581746899577459816171765424735821336343905574633670041826313143611418160332966762967600167994205533403640351816660549908972163789101933149352978816209395419682065819064283642662413237059039256804645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200489425440222386948917200466558257328802332499435398108946466293862106782615852789957371136482549194966699900465148330478673621389610739799157349933726567917382050679489033578517034801568487119057331503073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986025204337862773557515550720101605978712174650697369997748850582368618239740596282389906171845816823966993940423403802715214934164580665060942551663306049310716719733083603311809122267282616536491778154547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777885368984373003601431294866492623107727490370595621425875142932668782847880787628478186245956781686625830268203644597885098295089252594417211353558594114239951535124148861005811481337144762057489372241692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225118812756016017915902247521397691067986320928338406008610218467139811866120510377179678586471588911919780820651104987209273293674446645552278333155612798465198834836197608015831317906745512410020867752382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703400695921577615647642596347433564716021855127675264892216759980154725911835301779011021484702267325079585252754842316261589296749128014980057541492894372407464438111610968912792553348665043947776470166897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434293369193737263789168983387513755579102654529523137287857195672725035232725011490885240111221231522395356681417563608279688942019932324527491150005680661906710073056211312564018295049933428178361120044138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762759601990538382949498226841606942370746852851185966687687972298646027571845029912469206489946948977483050501351974592227789428049458889362661755755850166849113803454065533840450925477956483685314132206728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008278150765608155394815807462635927191062286452912195489912738899347689840630693501530580839565139440243232506662242987659239682694103113083415119675553613783985422117921941144956191653884918597957076432673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013324703785938655291405189485402021747743494118074693780365326131399462089455574906039769709495500802649687908339222077306303315271994479489978198182895663978726235996505384508402261607128870691917955348341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332293741480098053490197876511723501392603202828319381375304617438618548707315228789604380162602151932172781250101536609553959394826629785009647214769630414209285608367553697145767446582513779268930034981876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422290576167233622174163859695942855584152660325817356968734787152825385468661708317156789798692079668579385203867327936313110970175090915363971577478546692389841880008598498493115913728360813414373935984087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196441030335698575787971913718747479419890239855764454275317591278218206791940095979448898021655199474910767021949659610071343068360588439806250293333929180504378749584578395597521918499399156656842076444015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098959101629315031440616760330448713108889303292520953246042438715807137411333349675218946784204352012005101715588810140727903370901390608296232573654349022515857159734383964325496828242539277712422357476365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368349648376763797240301315465398808417396936142586717938191404814312622118490104771070020651363401986558245954915189360886020775433744258793923503783385025011677270527206099193802611795015938187100439454786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553862899585037777990447987976819174494142900098035975024431445721638798732593334748433045739408125512479377208382988604655248714452068120314432872021824917133324123894130322035955727805144049560581365140986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954865526065376596240693939127964089260841611488033064649940540746459731482403965686343215931299439370778216002709558712592639380626530906372271590302144540827890353670167098152389832704238400163481012749869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662816736312298905624737776292375576101165400655938523727391506690645767946392058971652286497743450228414035088808309344618168366673715725141638260562684009201088413783889207601230008640272331058740377923680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060712197168339517746845727327057830016504343852267328906604188841138250834136137996198101697052736772471979593261177622344539819532047244073394552129375484996462128287798947592635564711248098447886354857684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765320610164624284605754459136274080249442643024742038723113681403501164916738803397962812882370862631477737109509252116696677284000566965235533123572734471225058493342100065438046715335152491823178461651025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903862440744586970142059022198880684609651517094823060009646570143644076680663727968756940713515678279906490790632772090445245032485757928070822520326239683354851586069314597838528361694563361863149568957512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968030466262226939292423381761474062176943813018164468362506028878688263884862284407686498705054382292580658487040403556257325674952011143193754775407709196207953718148825061663069254831888871623685251554848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402303383876694730853114682295290092852033970729724784595032639730470969287727556674107879212706769691471916296467784842643755418575698510816587182715147495503615650037132073805452127386073713493283299506794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351228235903089741315318724606576765069273120754053562280539695667094045543310016992009340160301510967007087033089628658695481117116447222429564592624702284383736316827618263814545273819011571508952201669555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075397812008218213585045547352157480438705096537744614781134687165655588835197279213185045506835539430760503690093629623878364086670129443989385444418785088158837508762900011444690128881295585567752375216598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551231258294012367477151579026785466343783299768437518167132466395464302078876838451413313112004383627209472896677974394888903403933393477149165560987844062612358122351295492562595858319163624484491123953657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926537717669488632567738508113099293924279731126967745834906089590146797112197545328687949100384969406070056456723771053491890644506528029557447570185785935333025343731414420530358189472502565974199223900855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639017484856330642201175201778857984274579591250260727814703573118803108254072233705618403981464308667013264139910735002441887725563513180201251858081489754097369730814873054088717373474428409192916434244021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297549267427174010931339084400603177150398839717565171566425066140863519754573459747328546035257708163790805387315806922805330698661071761704723189417223854132675676864108506936197728508808999120593229478701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145518825693851635763993030755907074091779176896009094216626863994593098716651875276280612167765599179102906097798876029113129385895535018018282822842512717674142327943772490834468421570946790104913429397381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201688749824301623732901654238958880298757500628310445539487277012493083152494979747126764811041792369032564979086214759140723385699856848993207228126831503709899193130760222768091775960194196631360653375426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553452981326433742948397137157826634893888175852859964321524684920221705042364386297153170378612025782854723968550109472648686527339361327053170918496084286797306300436165421346267661010170035987579790699862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062558859701223872834890240573855246423443911993450272065771715210499127908992116992426409704094162072318039496941688985426561530328072246825542458111142700957323271901559885378957557116192459631233900138923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357832575675472246049237725453066312261405501756381159994319702788365614699745356186625199217747587896680220466677625977438338995660390403628298614827021386190536066366845791514514912966241491896900808153987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717648733877548421668073267934468273745356610801508605743399198621529578787611185592447235271316900900727602292778572040739492840810280038898566540215556333756222914589826405817184880903521959232298455919169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645519105336273179156006459648274765480572318894713984109860130286486656162666295762500981783944574352039379491631861623245084104361645553981702333968280754081606767892350510276470520409956971481930783215993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091846264871776509119033457230778731788048493776544253945247149424091479337073513487876314576985100249674982967257183895783784649478639854402312145464070231609321036055594619547608318410781549758552449473221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005517840370751610615086328433445673849566589150349424052007897413832212149246717980852846342868204470275783698828657304473701798754988339182164436320438360275261130900446100374779902794907612459938112405161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195111952017808096749067049765894282031932459132425596171141643166944161801552406618863311739950687964377815538097222929745986867436434377244602250082170131493699181402454209157676839550131681810740342830411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836118148504918646756391772863305837466512519099517627862182217783739216042843812365855035987768316798876917667864037696003396728064045734525975201932854039038432784751855614753102263637335938463979994511977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650020914631244006805066561821132029336859567547226664660246868542008039260740566298299662282788667330645065503288416293882956258875540969468070706581219805085789240566782073019132006706036421683649165256313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261030239205316792788614118329822645975576534045423461049029572239587533119579619502289460503083569740319848247937503897398279538992068971891296270970268160179994882368515441024906345037933046385059805006893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428797208483664107732876428869253587146978397261888103384503337118151711484715753572829111377136313197782120245684609697774921963796847374969109456442146235274675272612853018007895735430327535505890027607241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638751714439266238114553939004388678518424717587537903066366609326888319312103232072351409070336054165750822090603372016681138850314684644519169504365588661521259506938284344581528708712282931407275559336996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528900750775831818122670748616937051137474051447945461979530174760061067934534837739405521359299881834654586798258758604317340405546011823364935533063590832243916668061210292859293099627572450312336493553306359083224391666806121029285929309962757245031233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559338147146495702803681747815733992552787675813633597536055933814714649570280368174781573399255278767581363359753605595393840176867674304746201122791642138790162717829363320257354064982943159500554714114406637280225906499077297215318483539621059207509481870223099482546729701848378246112123226391943500731777620066954059960374037654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737497083250483278575562787738665283977888843093724219594555535436816532937198863634368179075180196127350934580410944655172588496802612101534669727381161498560713593318421251782086976441366280313195926629980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900242018592068301245576885159986036670882144036179949757693010158168404896369505707194161819229869985461811066431624215434388574483433888071994766742309255414252204646132633302192541233265542251790039623700118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581647917057753460630170075274314017131409347082620758055636513836577977785668667231433899715854051283817539517288672679243351932427944640427484557220427137038338428243358563142551037569101814745835641467895345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473324079182045553817663723533222093512540132481590298902642974259278789454750065499469212124666206626082143493200208055224057223984383044936328281922845488932895874022579320820777499212636085911890296466098389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000814486291219945715644790099446084293682847965274461276533324488110332420251747386222344906972367553788033995966640307214375360233103696573323152377229874426905668961779628232189871890962510009667381607994856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462801394627545923362533618584457602386869037340402342997958662188971415880457537565078504261021206974369709692144094113468994263087437856931812699404387145948959983500248233904352960214104347987103068353429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554159390052576034609120814028417742037713070084243715867293605934806649256089060062140073524622034669434043776297371417295657738443594005475357783364787173858831995725380639809960264540532720562873151122978157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160924243466569700709329952178094757112910514811469846816362099491211915737590934654666176085925249964296490499530084958760781963600471026739400740732084362442003461449470324239517678532424534809937752802805259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969766521920190813700036727820825480844407705488949773529007409396411521592813098524327606824759522533080282483140911455034964805588336314363788086926850984022754356109530387770701212000289803251790104923250778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426069417860407069990250750049323362692993214094658099646531428589402950507599383742467138926990433088969689317122152250932961528322314040152247200696225193121876948328674200291736644356806635821053328041767261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508281811189635502495846710684529264484555742771213474285886128655316929049767845662596418247266927783440026607279474144408370664575851237670920004831219403483729208560022902779773086485414746185881115702402873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655039607867012304739576533280658508348412526008894658467311915729174574224177949335497989190078206213086108038655162237581246483554065072432929291154509266713185929676930903243805005047057980295747163465461868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064298208172745061751153316431785068605599580414470505145134434661354349132377733690004775758504046993549528650821231068855209618997124393434111680987953962481708529338557609002702279497412417974047571783589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093702256819318024684488318677087309347278038059155250231204064223609470988530160758370543677837414644116053421760045932648901251010943688839493750108078235517849509082358995407264746204374288810508396455884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750922954152053685929261987791689221592205220551985320147926147108591884318686574115963789931121609989761109796335654449027343590983289478678839749661090310579656789884814633779378097206339058401025151480018804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353420533934694524974769550862656936276212610915726891851277303763839795715936693067949298648386633844544863127608551005181894581104146470845401536291458227457290153410579881693540552831867360382508835230473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773544300787149940796063032576958992623920596601385554180341966989324367028510494283621790242444777381925654599726442141645880183324265738561878678959852363478423536809059927119995597854014483596606215632951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703315692464770566831708735818394804538875307517147833711950768797640772884648664979182318450231538105517587340718962538798537621437172436820710468814205249239365508704489135541655626666713154192176366666445461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363454402515452339582336587160381608528218500714103549936084662784075061236838764462145891921779142593006497312418546365599567512958502030822784103261371511351983906124159646333982390087897387993371672887203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581054668618648920064818578844704613762942820614210703480363084411167800614815023913690139665758030939659044159125120969529735812730979032583292747939969282438314920625902933092860103323917403838342745711351398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327699904005844974347590556420630769469347283565064991077767958926507983234810840182244891170749665104061875918474857697210367432681514842019569722074734482208792869960836293587631653890478390048742747935151528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585517518247822341364317881652068506613942262653446972893597805755792607832166738898066125192388000169534325226200528899561086132879950759573554749552474243083287019180305647708273670143445393759376315501750935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141186895445650421603370647862526272470854341759779500692649026951120275026309543674058016472131592679453794369497526101844660858000783127191316021235091382970425870233641604644846128470918634315198653654660902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086371659833775710858330103687434657741106218143176556339621006385831674674809188717077376535589866220294998738274442554792411634654679406036502474602456189525909349966735951227127320524011111391852302706761427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083657628326741230020495063971736784188910051425253052496886256738738477796628662164973624028836930961735437337313667758358357017944714574708124906980229776815688257225708949890899120660554025206080132245048251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106681841781026557335326213877374737553457827904151159313218518285887774417722966204691386602093496942560536450662133317325961987682588594298794267093801141054153993918960836361924874187916930646357844807215658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672034561475693978012289565852162256169671298369008539004383451036299591188765554858501038242000728257383191539907527071272412720139581995535663735512890906976251070304892027945259155650048553046678249437412341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275202638568898807683516345882147443822121862964661262708267422635057195047392386350754121166483026200971276710048982671613245191035278362070128544446701113052325226930150870306338451974189270634069245458809137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343502250882818892915244527783987472190081314380720430207245467931758778466626656846528861507688403122321218733296072442684943391394823440048794731810015672345261770257670886790779488435759761351817722330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776678063370228800022181033547073381937382622675719292593356370954061572778057244148311164042802001173781045377356971226702822063493126905454981671849950281156890107968802900112565891790555923454722921378528723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382468683009133256534492346840680693901747353201504440611383475519042887754060775819161781154130039925740378644359130190784611315598122874333833098537839728020727286892320298943973394819817757139247491694646666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983740904860172437641981422704314803738452936874360053639126726507615680781314200412241195949403929770163428124078720808521666306459230567032070981617225290269602306308129260227978177435716138102919298062250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224730903669496907177457012177714467268351119457992357643789469356535420860629730104673071982276607743930230946886154828109515202159705255023615647835579419688175556091385778521922259647769941023057003836674762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642922288691115250254993602180051041932609690738474883239140241558533260115285070430660932244424825241441746074448844534185528241403762246430116084929486645829985520542671517405454420206280703433294106933727264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383555267472209412312676596338155725024484611269592746975238144932164044468989516224006928370958627380688833629163724004187595864552046374627569583050798453815347152306641100725692362934927639367109131351270403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850958945374630795183950034717251948443599494854468526812973590190690653598903356956031006447968263120457319101154449655511226841732515227738630308135975821722905976613762764176616347690912507016199955375964321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015488090523558718680761698556060434175392524049679996465176000269269165516987526525067739508513040805388445060926010964368810894202685615907389985099082501549463918220970064845536636689968589228638215971107671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185241489579124432764872180145298218574977142929436668937836438222965859111417940518494207357064528325988459122593949274445571466776515114569290313952537580463375857964158116362187227661518982412205351322422488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883493089033208487794286440497222682861859946689343794851334855905828206964612394649757412236283139773381908745580331675172722386647360336322942216531277635847730631534297372774923149739427339168139875171650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697081492295834331163103727409098662574705051470227230962962287676893693773871239020465167295592539637570422968270137215978496180362348043379063970358558242210882352987239496885357705045182895099193763474732035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476482850417271139264031553850405835488218720632498225683083781144749672788833320028717670034369690112633377140681492485609922237095518547384457179054176873927917178516593198682887564181867768768410191491807939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496619761614608405906074102214449762236679944848377775461200772349048346804799553637492002228711271851356066168229123239218005582781418581599044062405262546367710924438317339847632851470653500079783184915824011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957659146215650501976073448899217067459599010087108436183443327787653682587723082233443454329275264503508275103688527876967792475290543516348471778306004342306802510416927098404294232615492831376121879256159805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470510868155403216644525162310712260123089371047550682508603240463908671443690773244134398492841467882847147933299621527265676834010400353802720252754184352253722834489706581156085710599336667745198566047220084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799629261209829819631751214535332103905565185435755015506330230393983217424163887658141828375495738248135795353764156486001991020976353392075484934838869281611240904286051688972415625937579583189895007292459604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576961414871966420425572750491950366323004651395418140725108930709443978312110733276687592803776507172513608755719376485636744855888825788766133918449302119188229270901950014684234363699275319954611567138685704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013865548465039391744227689983209599473453261485153380908818440673726935784293194085081800541112501203457445303331397380446948852770989980569600051914114142279477629690392241524461598136812557513984940301589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752772344850870016671622088134714559577331251876805648529105407392802221120032862781056402439800380701905697739652978779098800316200668984037215519624334297992810095608616020149108819115097937929003694499120621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133145352271022161786885639796180425572709401969041952782218972371157604600163990908887257182510468842834618913181202969641334893176005480461049509279897517631114740226421967576451984887245324003253302518248307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337634419693864702415434328232827684568414269943837235402540939373073804634343828207196553140326715847016941483313914996741090812530998431631207310850501690632931910182110539558556703982419629169520765719992723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436871834305909221799544996922233003428708226933056544676836776755877960837571832810682555956854316804574768968447920124443974874700573757245740874921782756424733258593382718360118550637271168238142462458904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476941607662478326065735413894461988583756749847678053698392957632660226472399204136521623736361466640323155185415154811185810844339855150436734807098016306252475101971504669545974914141011308661681636860421033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853759664716208338537412263555308937443901951541575679942453238033408307216841994789968124268884616597060833397337177144364986798767187972512615063197288554063191512610386496203137400515441345721044904467051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472102780965979991944160344384182326231448081673218912379946597469447371994734475461447290698588542010162523064196805972372284233732451140654028375526303970784269804597321019493457002525055959469814542210702836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917898442561629867390910053700297885506985823190928855440993457717507878492547917137854322631465566615358702116916043172098426523231396606548893085383019683401924136867142069727633671975814778723614330172612555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101367113732229307682146982330958626017552721672584247759443215834483251667717953813744964440656738138326645751744905748004650568402111858982706460025498422293207274982206974769806226082660110961848556935211806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123734248586441731267184746634512149080855321275811894748251785940175844722914259381996647903390875103666661541646865470072022022545975348098423501364848574947885547459213375096376782165427914135474670062812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639434605121639245148210507976032685986609400873234156423535667666375312276348010107704548905103240579565966741308311579279748096695434726072474106920153392090933458277744733961650093575247112417075063503208867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221737979268046636376195583620471957455881725511200080419911461363395552011300394239159753566741136702232551901934176455731469482202225229548333297745560513730774251770977444659807607594546606593103127348715553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897280058429396210552675039566321492376729814066350061202360793595072500261188229881702440932306066540097229824335376524377994159185149339041722501469974253353780504362141093577235490088186907390269514016697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623830035426887429021182429856451245795207347984627346195104552425613736299433014983937291110870529969519183533650534844242848046310476522083420859365173096584496130285833654819543598186756220294161384321163257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813921875928804839845138740758643027656157147335183544073506255312343664960053109148813032384462652043513629026265933306812051158885104358569945649938869570706111923572757110294196928994187655436884256928063861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066369565628381349757831909024277049909445141111241230206043422328892597491438231575907984423517784541128724259493533330985710978755386839817548252121751810308218176505155563452429948453904577562674465785517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865468587799440122965616563890815959223940343922260010197221765736217116359902575752900033866022749259421935596129475518513699393249692786635065238826768941167638908982314619095968338612311858671495757270575686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413425808930820409023632383517830632217617206433632011040344099409158405146878326260477568040712615484260346833880268094044793089193734239036386440254924481157390763168026646799679017556718706413633240288705087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000310082729387122487986914124280084502725122546352721992018762423508027844796784337023680736143992859048111112541931101350959312727661124888954689194535563621879329974884586783481448626980470399009162895288368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363945988575041132622240054109705194916292574379281916876204926756847774860345138396946799094353055861500427944483112063090593443247000937536710056044926556034727477807907836395045187624483926979873135352843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056557794522660656950161892625626948238005695033649150471162428579689682908969058363758278283892895520363223930960420462287810637658111782742762532340505564585343287393682881055582302015544340256660561199160833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255050506004055193310678540221401392893077471031783341055948291837130769245697952206414022795846705868857757846872528947007508518500453068757078397466638450736019535737073785356700362585582066737243338623835066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873129781099401372087532187962176750723431042040983005430754543089347560999967053006260089395875398030047816817127195093934191068331792429451595438511210909172267321832118162279570595447822536126829509548622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373146151589768102894467346086010997367803156129155718923796941378351231627407516945694908680544178759792003655469263444618177373227167003444266776046094924812058797064658497352880792415315639324344125789177935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791802152291454833956256228460783866292668106052637667735843824873378258642885012123329247207096075960682756058028935698068009042477941448052246140801929827445359142613006731539974220398080445375011953972619448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973492262352274323053604223375606417777316238560718050405591823508941421612604389373200349753263396931768396397408340876148966053467650020180180950179015247573815905144668404233204625195859647960289531559077547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013227661151733251592801250066103078456552279339066119554676984670693114454341653858729999117725534075836267307205981923186415819683344077561735876011585410628859025148597066302566272781881934320443544059426417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787500747741928834128339315143605456554992740034000514752860117649136881975405835181301064281918542772397988891155654420613295214834039746559537469317679712605932622735788936943952814037155498125622918360289709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558719279745135456040928446312383889192976387224509486946643316458586117087884072595663446488772838981448069759334634892092084747933664114769169483043759599830298448510466971167611803157567043074868319135015108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720662888283651460221944708196954631978248180623064295919343803191070756728911303416669390683766514373340098291769177833502351137723780700801344937512480505007321973812385162506320810496669536517392868858139774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945321955986639580917941851056008686137283520554464203327542845960428433290425439861323590988961610491104037053812955077468163875576813162991902508157027190764907757843602169772279041728321524831115467377986753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589944751500765742782902593896377634935315947832002254243267251842300506882020825497212921405633725581581127104741570185389317829398787712798274886567150463224664385555348488786876641355612761048582420589186519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861090165524898357700496192037386165583736313265234598245319951059160583790003979969517770697952469522983676074314990085485641433272200349890338404285312421123402100498162429185892422243495753608082603067624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202150851642366350078776071519856145256264951591055507477278537981540632716819511175410228892983782225453367566519025121682301691819839425989997594117695875215092794637661963360871925094446859022136218571040722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870517194800500802567824607818185487583892258881641762049036112904312816748320766934852285776067934846458657669095206610087879064301681675339162115205681084467894159123374146368211388337577326140274624666451509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916610268387238432454420686797560394826736582067345155042676308818158558039319161732754429557643651620151664466855759372594097115187836921732999384157882766022670925291474618234186636721931122698423608685452041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788010634085514866228699569152716263350178980339827364487742823153814829001343256788832287607165110115958718714501057834762975288743392745818276860004527757177247880209896564385294238817387999187471297587411654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612045011747939862821525354972026717908950519508590979562153891218056487899678573068849963903277813229401520730505202096076546883252517526410135506514502980213435336587555916168367494289441214804865998225611198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493980278204084501559743111297779680235822043997189182740819520245230161759947970828058600328892886741062471328690946946684390420120577410669946215723851109156923759278558684493977360688001922934914717580163165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892495751470690246623904739663020066157810935792046362771350394697843435917414264377803119021954752269208954796887825485645707135566698502327546123988230278689013175732191716784930163650138955291315901174224896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423551643968904607795838664996649445074756579699351493513597320013303372081166289167650986948072944032991761290723011140465891138242727263296851760942841879398026052395654066459330078965741576697086719209294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425761699280642854714019368556141102765828085704034232587586569465009202308498308267843272774869277955040661110043597647686786538495502722558854224986136573631739614809989360847409717649547154334062370732658697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075619226485397394933083251970873138458119857017100249136525227198684083184047846936429025111292751766993988620343878917517267572217442145385761100283487432190524333293992809488390615294064110187937539411343031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007426534024368037921068446153419708080881220768071106438905886342157852825822877436754701408310031138429853493528249358504036234592392668831144807754671059106940654723734658778941924873236437024020240175175970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363115240811767846454714132798134065927467320835452822766343059530547343093817503778723176464890964910442558796940411705277662970232569524636717758458788220284605305305466181722096550981839675444011935670278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720195820518561825014424096283660984633225284110157417361488234146028737749849149845904629889032849256083957399140591024120684557624803459047235953688392746190063530060252868443454660057857456872500288797407812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073611130310823800031585387362868849210917491803390548285054627864100013169471998948894209530864465026796100715048439262063311711860861208187157327345513700141867686921967048859010362423315167760172717422330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505116384635711187846834715883490623342588343614274793829548341263417416882602888735547816653238321540768359096812054884548171892692062036709653605640898759284508157427478621941367169943229458693304953537229679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514931039641863808926595190343501979503662299371070610980328347286934541513596718150629766374430994932369570495349591419352727151418737658694512236367107938011524216624494119800446557212597535804639991023932797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479276315847935107106227221232890003040085551034607680665195521686567189181334850680693770039068701376254055246684976710144599349618422468980417018602351019649901337786508323436869443782163920218850859965813111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603578958471411788114001470455657924684793389859044356095193955983048411907085968390826969646301033129195405483566334707548255971622409572456078995227513743172920432944214571757021119664927329504589243511542249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403981160616742076033829175930656604400871622422948641209276800548402635460460212864312968617604867685458733245904904458154468976001291767593717828778157463447497443174722457141782495933265895990123263165431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236791994181688328599187157217228765199470314248248787596411631008191276660288566473109611646667671189367634721290963008692396234207088629338631255612873406534679097419938288166385060278732800485054491820199337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184028068507709966620139938302157057490439491154383090561583001130141099139583290325869583767619707448919113263121640981843472560087662111596951333890462589050402103971688752976341156530163761401724174127541567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561087691613043613748330479441225952612415148981699807681018481895780038325763387804353118569719951740840404292157320717893877089593155702274272826581614974080133206343384008689023889391833314200451596140089861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071676581905824216202897696844090552454470012818868581435495454205566898387862448320752121741094873647410915786040991025855586394013091551756002797658653840756823639735834723364825533520524772296088193054082105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148815126244606312813852410741435979408576657852516943899274655621805886920662325044937029212885127459270213767483429277774127189221554062683300828600901792187538294862915016245407247778866998890070980505692506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294384939136701584241896910938623802725764521667814022361322904680977248778268641881228779934329767071638705695119901896323092458999902179757131345174259360325136902088395860854675047773229290628464817203195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567088139473448486214381111595475449852804057422506951464720084246244722993215792264672178814520648208302769361192173852367856740962791085234229560906326667104802881922637139090737684448093184449896992931060368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710617913556767421587725759822191294318645745477205132894587827375775210307119425545175288583633445935800552400893120991882570655486639231448086237441459530559003065809529244042617675254206771033553684955246546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326766102724108073795462818807634269861761703310093468008306518347713287054254996232603250116192827302129934934139799634261512648506347348327591363178682472894449321466061847965057304067187482841519147416841690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978890912641531873040605317247738103537082669410654440622661293766233632590613838197631940130398985582094820953918602481990989664862713566498757014979534006764478586820491076270969775705491508796197691944139015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117341653118922038451473699023164776475938806016075537483382328545825950629102393600165447353942982876682073712192752999073697440811342372020131423404505259316972775590585657003132022465479086657583451266545682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528657542598234834009264710128328430643025697652644694135027062145831911049179319414349301770348702633346016871029183608374125327587763154022303956288776844723280302142987294946474939503146491804133514202393881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847206199198050179722622476371814459796413713846207982090839588211870480155631852081343051685237415842174781458011563058311767877089770942569153607878091136284354824022828394565804195220130311977227965959838840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028267343672871926207940297350617969254101291753762660825396822180621641812462173118967334743094220887670606305467169963141821559029243513784364350632262093120680143169163849781012271071502167924720562634687067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942990784092165099611235325120110314233835506549388909275961105369398083023861037130475667626055583092784943578519785639053474326745056049094077085918865106554530081982644525281740877465478991615116348753930674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547714244902618109150955830742760829485811035201107033030587092579512353389221572474247856716767883589737676177211751305869343355367649036743738817044405436987385939266494471535038152596325055300204906764624458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104694081075061673174785697189794278788716052834504290221224398343390694767646413145818070481842165818603669376409894336493814267999197179815233510841570647616502760453863299952244303389384486986948796492541509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801822954836466507308346158753739094675311255426108040965927527145627225527350121765782432201282217368454018834091125636960586741735441883030291042295409312139163251665271628121402003934852462926770253355678013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452059228602216430922707329113148505514626087654910369689708578112513994774893832884265980561212183161153030419155186977220696407051706558307454295568020558606479198561137208320213973371589718010093419529924086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291277835848215629148003084298917636403425821977585909988615422915064881854893919464924424427073460653662824110438068746346424452489217270080026988968400977049906879061899434905998791232993931686542977873405363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836067619735520646544148606206582731163150571772420887655624872226829266602037148511214624414964999515202973569634689579349118486138732356737272362867229569307022272826189362420914468343426468002660771995022165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925124556125259003322197307426285577090519268291420781601592068468518949602680324164502321797845493500368685311200743998786753531880447347851395431773960600553611144063536421618126021263865730946905932559063972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453782363709467889116034175404550891697540592273940492666239120406468558191112089876130221444569725686254529501304112171998091066911541574687485849599866199083983781712633106815336413320408361685895059251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601099690156383523782761290959674815107225829181329982874270549873596774842208562067520671599421809118851021464388153607962345415092134034300612997868682579602938497659187127068051527071418619605739031888512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244982303860880138242498830699639176230939613485459945178006710782255193242050873901267954978440156989887507912316527747212894791531731284579690612883700197518951091669085067985676051658730747998414456849249212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363788522298669818514967083486052744652644981763753211029230625903686358567994891492488089604126511073389096634435933844124958326982682427601020989659454604773652398711801751865136733933944944267677542321191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839271724279586677378380658016613729297771184466502501152581240730709630180406940749655684993087263042183001570412013792245678731940258213109454610936997492226185837465197323220368127821679785482540385357995868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479687088565952716127883634043276080005804509481613762417573420339477986303223673828425719406058354743783890446415406579099993185608124308463533967991722881263788799160033833788588455471982316793889336283777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718935466735649456812354304961298884537609297708931994214630482207660235398243215761625487612842541210616113313364882245413244897545356626534914240822491340206617500721126943061249663413321878554680294591249172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133397633430005081273956718748263504621039314324319975491958090961365625700243201665807095188730589919787067936829524404853420238652758845077629278714634221930150056380457251317594012285611355436854201081823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047181381578089815947036849425786821926363634477428221860596424745794721701500258173333022732047386573215346948938772327005556946006475062041487331611568622852690741688093499017469127606927198938505564840024337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117805540667349228798064769733991389207356808640524705632218673824785071644611430980954948809247373180071966058926964767438019702682241032886561113658492748669631268073768413367434448435491569475817285335944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923914117857155601316674495414313623225134309093811713897244019512308210327892658362850240295904940492941532776864235979783872458059395139056795560489022429600734317792826184751933955564593715046875619975797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178999034001645004709491013833401772294629926564233454788104605647714030170786181447811161624796255323924406800969011790922851352731479550364501613013003828067884533563391135173141024267843977071244855993926430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333008194184226563499761732066839099307221655802854054586971189012219660240669460829422781432154324365761017502059129601843671261833291453458847496239270976581693940402863874677684859859221382070348649830522504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160305596064373428680323910031407094111326232632399839699537619227136973500148398583884971448168151714974590795901774492774451113062728420131635843764179209332924316744005546123114291616263976070663560386006560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625709633843342035966408972856443178958761351810094275452037400888010727884818895951672312621189125001920873733861336501373434886404252252001770462072668820070446561847389682355647147107826826300452149043241055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863202314402576460524637248392024315470427111900318904204033381700098642286434180747777779834425559893089229069745701872020468182941675249134855996061980098948447489166287604198006025970012736569393629754093208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194642665167687761191736222702092278336052507704807075907180343633570756382836596813995390760727068181365657591986683751054611521808378119196475540967095824956017828245672736856312185020980470362464176198682717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510300496946914258386937065120377046630824216489443358000596868730214852492879538242286100073642036496791486942425477306447281042550872919341960667052564506409608790024404064247311413566099006514678880932791384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343851631402526002102085325002803141809837523389639583076237367334254811893427718926930339828412036495177176010034675192081583382936321282066313108914560201482252304552882944291740051438913118279809819848432290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144045207022924523204540576280696579308502039812183784020672025012026675295531308349435347193634177273406360262579603136511978554856693728464042046848927715778043458677610085289607369314413346487377352501592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532221828843740013882581116297155345756740321498609755428688657987436900949705097986093770278357223388331453980493989210171433582618967400312252799730336457106160728496826402668234770455830154585574827171372435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000437610796725728059987482047989567855938858499483469651949308978149972776347330585707179027093568227576306393049702296633955287633799130785859314207811335111432012102601987304216706260143575841179770790458083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586867594573174476709455684268903853112849498801814477456650509614898991517629924164287800047413850804520329530539184097689946319969559127867694931959273366205430918120556692462152740786651432352659207070867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948320949988456830767241759299430340209439932270827548357388507419917136940049879858619423446279608414447356652037928295317016335118153029312723025435629105545863957777802211658866611269335740729443614557490563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516790476124747446800847725887139455273671088784750842568825983963683066764766451330823429953840637149396551260259641269166395532942221627797607874955291748568842182486374632474778324492983235440257156760792867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594195397184364725540905314210556663207320463884838276837926105500380573953794021513641366249674935373241044043486238233624920495354428579053065452772650722034659290443202201716324235831378351252109576415274124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771527004821101276120814078245264988636103832650848085252951495226355426460671844543042653382666861006655771695171442956555905423681933938717532038641155224288474087963872655996503545316017872842995906248975694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429337807454750823785605494798769021390566558589286009199045602603206378272907615539703831101800844901121481192777967483910272882057559782053508834615002190348376576463110568401425042106378331650979093472594994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133929568126161004650902845621267573941439279503195865023504811047168563578354042648572127540263881287194620920381325464811617031358676710643658766055165513311331702271823215687736219584821685646528460697066190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344121426361554780892145283670822169402598711263211438852993916963048048178929629882011238074901305294249294801611435330239008067065721378167971985686130290301299399445124984690100198919360598279169730514759434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731982015642422013268456687741832331024731921868515643412032717030573066078517538509706917170791725285511743627871301600952208920242405030575640215372736959266799747810707279372391235577709346828475601076301279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673862358360482837439278866547759485902892040201939593770656732119490991043352855179871403502030760557820191483882880946496482084241766992456758312262478070390557653141263260242922436203719532918554718091596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844972443458243503689780365184909951214229401566917453416838309035284779643067608611599763678720495505795636516693834521021205712467189023635837908339119080206899596896990188122321855252869348573651888630160452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610252290957537550950933718544900072907676126346765291664645580371533060205534741620555668380872331011456706082197136019911669601177265351241440510936203601001758405334468987565349002447580184990285112905603628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533437962825237739351775877039942552131816901739901861642141354392779733470876597369481710103318186376892728376366023019205919792959179148224416394031804147790028285712517764484105931564467536330924157970212626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516691228413844646308741027987820955877346176667793320063616141299836112387852698449676224949460162224198481882844175972508965043238838826776211538694490722314080038640966747955659603365865500834501574668100371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384780554257118933244880337102766080664261976800040145768192614123421421090837882603488039871589674691868127595035419040689672781395132198842118325610948747352764866436713359368373719071671361534428920725273057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073457059526133029367437932120406159970890681203507862354127805416826582353742593856966435762710973540865230333395749249771995346662569428121211926674888665256315169706607240021939626684282515447561496357933365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420456446438381600099906505371881484938160865503572270641774386629751678966655499987889572179026230908454480646518569309255696453172241089451645426796761819728832958413935133844596041672854573991415080495944661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222936409047664596154505594842048813114413172046469267049759749059935116920439027605157446677396870803247804063437778416725021988849435409828211600072772915050759869365684722016941046189444582618551160041549451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792745034958405752928452983890915764913247310105633314781346402650462629156753779092137247828970031963259689125133021524656120543583762268609282030777416870045904352635817494636724551789784931750675390464041603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546288100387307622968906215262971114289273463392143785758381679957096512975121288247076229375657213489062361860141899595000293934330117463300332972907834026382527837960530000473559275468487189299720656136533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935943563230213110848242495018006757189398611897262182430778317833445857036118160941397634465162725658288616878213013425589073818405734222752790944015079633506963068315858425959758344133931666799730480514710420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052220979352465712270664005413539212620953741607025988131267956667461709323717405236296319608936529844425074302280497664164038282925713716360306176259672499571761536958524866449317201096085345723423625450385444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774932420985686593504901062114129914177309980459978865399855599720886527297388216508774800198668603163056123011444933193578407633418331385977273234527021265265772962648846204405032377509270264409159921265248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958118710196924176642924238937549451631594772453110198414508008761556264407882172093511259342618446830352107379400041838289360585440706517264491688578728545265072810491172241294152234684844898973496533155693932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820125379900840010546335233641891279605446876357037106514135683715512448361849192509499414144624632178459676671911648776744489599464431583958487181884662742027844189992880327512449666964867934589413298602330348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217749819545570796378004278014587919441189077071435801103026624542936251505434616515198607934238562390664551545908689970098727578338564769103346863889942896361916953313831063514443194692997895215042734302745054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074537124601578468879477813170839202770185008395994013507875106453561461548450353467874901534027514090183464567541976045483308692169390248980675092299229407155069237778782666991230158990938081337898067509229922940715506923777878266699123015899093808133789806750922992294071550692377787826669912301589909380813372850555299059934716784235078673905803655389520181114771552751613837266566870550325145683158295906535700608065726990227214337914923752422195825551552739047664151524230841309327935561940500532444145395061094916327038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757149771141471427950829588702992792468332133705152675643942311350262877689034464663632184445921715758792411319963298754131201832522267869678996413293411317636653889683205119163622399637364006506242186919822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747254785968298124948068606644449351918303748366550817554225733526851403898786503007040289933438197230196147340864828347612607301982226861441179898436755838915900846999131405413831939181656430884349788299151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360256626384138952626279302130009966196300323252201313821884482221538525312767676304855187006831468403992681854876538405638483192100247223191661009134395076785551383704821428491510169897533907897563233992177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457844880612478637738826410208618024951305733883694158508782319709815158671170951738802867958015106788044933902480689099052919532844669682882545529207870809050166148536753308133690700480133882858546165406413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282001878480529530447698632263662782963274163701153111823408178673987661072812732577851392113807681541894440417632946304900618647807598912642832572998735287161277418336805175637941952440232128885491177415065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920179175139335329885885343364499791300165712868099995155763688357969034499847234260419431859912204658274956441376367770216114312700143477161201646483213292711825713287910584135786193118937459532363102391270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244712460141784967972824936614589907255008243499708909680963641689156962089845192562671934304717145630443239981556886935433726230261498003528371665135912169317838230979648522206285418847348693935943843252998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447336541276334027058454177857748524863164999917048547694843205312092927399866107526313197643376538029522141637423602372218506779113887258057677755437425357442389979633581971403227793561397447071194611416517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650688250093611926107891124270988122269346853198517066371742046809637665572893641713249386443340528873527902550868995093761512046498450930848209464606417794077592727351875061493452818176751710845023652044236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364807646499016637843748410973573009874973387215572695976033113712883158380306249032383304861952114982623586673336359436081533096204352318069905867253166796719897757396719850563320391627692961278450432509302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228796675492741413814600656548508777948994478550508894914805288265876884445662729390819614400683983080524037256950641143899331811663770163075193044500215661609123977876500738743398612137767631637994991603580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746574409611518650168872167815808016185486410808986322233409912474922580811185326998795736203036360120248633970529467124019239868886269983543109200456227916998441698832120180955945505348853261754254953638515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668878100256983906871131921425419886641928666875453772443176144635415665762871405535364287851801766219647126689962431948273100939741710425905524374968733303659687214601889996692802582305000250494743195788736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304864955870476420387157706452758723677080818059040842352377577575400884687756111665813925119356731909402096142890110964899571503972071590504247857829641913981864645698069003883646798367981012376946322888360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163795087784593437287864151446387303443730098248049249554003322343437805888464426565167111725408902425165680743457602957148128224094784605585432107534563821848048375625891575170601371468196421689717760549530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821629828304937569597521339743912031065212616962292811787214991497537254721293068703850875650615027522642033730412161623496397880994352708041669332272183593224279111657363092546649671249929614399075000097635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113435638105663770354879809403265266548458248684582906755643586324591807534607758016958399758064881377043434130105968843929917931741747428671251433132551775956673912061135467364831151979354208615472228327585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045272776417201122912290611855951275066506498354602961029657475437590695555075101859350758837894692340808844242104044351784510184494697766022432572757633721382667328318485104191372257279900302301951988145702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126379666906266962228804105219437555359934786322393330880742944031636339297431845742947964530484812667242960554778937241659254754257272948183035852407989706013833901921881647311557850526432810671078304253827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282518654578715415505437681721619494162439802366970176458516822418482349498561226122052594069468684335582880004236042671649205198300304006390821604948418223179378001878971473265413916596941466285446072011663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428517010190719596899622216857242058270080448845866160085246854711766440337454171697257316643571299349388718199291759466318132864866184797194493997567376889688942187412505181286522654368902847895239453189075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517833405829363143893747277449678965136481140700231327461989829246746688558984335554557604277573762760912058048480271999849553952672342626971751222462169690127800810984444255359151750836095039154280956032294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925799843414159079094047612707383047817895510947309066257504993635142278626507467665960409187273722547794729752121567356857260978856646457541013819301847821233651569977226361516999711623081473538687445595345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704172860535162743180971964185158133463861786405808528993261626747920282290077980614873787741173358302761312079602560784881890468622896278439020499837036853688102771127764916480789399444390409250759048332890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035878450430168811021442649884729717744959410584520038230125316607870885990663037128041215289078551534221312154711394784386313780256937275762215857679289152126300066971699384726344308284630682783195321247975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066252450176922788520569067359008431604124592847480566894697818276779475588470103788134571631881749442899892987167278685725466553677372831124446176730408752350650543917283196198305056380900140711890771221329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686684335521670808965836820495433367410868993443622970414443439610988612701962123616829423893580447197020973891992082302323146423505671064991136035773195638847191819769880710058067038705725015301906153585559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855107153993891683837311092750205817019512313117767785184487776872680421393928603421323899581851327766693655981806455715585403801215929712677686438428537188809179099573080680102254116516429854798597801200530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367990287717942890826604259749491147707142297025251125860603900529602402545826248325755757561216131279581281215685384085591627805709293724661243672058886815767907693035051789575639340031112592979725357775442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728826595127539727333686941755084872178893886406183984600371686896850918522983446577551641562981490543467626842114452483994131230385258051848680195708892261883252235536436873645834791469035678722598255759755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436069326731670892612617013398426718889342124987556990243059505953676654027533075503094906893359337655573217538335664890410728780373174267309618140745156207212598314724574830121106609479787962949043813324270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841844138184923763527714914690697433608081450429276576158754217052493940928386373294735778423424077954882095312623534027550350571028903943133681481995153566109244774270469991167237898955163904637498396603242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074718298006506387389892625648905439739686679432127054939232744427995717336359106333484418514695342981280896868740832375408026260594329862056291817544122229001840210059258435570500116263341389111647224103293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497109253724174743013883031797018441085704513576815129153624429492503752616110118373210046518961467826972444261780434649844070818194648857015566472912494001832315747489212272150548567617331055173286755555513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435743080561559465242288193127203292340924903397654714651811131459251905725804935151124366891654022600627554580176117435281431489499916146718935238144336846404276729538716752608133950987596207785727789249855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147177421148043213630941487254781492630874667847895245556100534989078888984592118410223597827373165212801974854134198697705439538874973901457412211904805390085525475177691827060709796771265972488441968233810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062254609303845922309569944746489959435280359572812207359002148467487609628497018798980716170871860113170396984354371096843517664924795544202742247063771600035752294276137432881027737424376338465481823242545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178046249932786188807671330925433892842895473399804678267914598196746901983068398922634392903571857330959662853884503112265863257014951784436813918535839204296433758389492384812217565502103554067105827726887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391497616190334804564991698043894828487160573309708072050466548034875571233312222486247330163998671379512788679864381025542560425357927516241316245495529731023645919930113496142952218531698295710406851480382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440085956246876399514014714572246854340128078585643043939470699712197594064592144290107129319140574265334713416412866451075856458812395114011779550807321636781016037343376015731556349255659393736716561935500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031317607718012390587255347242047415200161766602180588246194966487460645638789963150712442915388404232450756032140477624258036526092051914829101027157745924142628710445597292699956501128606688546274875718766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589928945632553125425344317399853694598058360286745185081053313047647528537628745709777767541307714243002325347404093030694218291168164390391655747003216588110006242071852475797469805276517097274515302509461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503040166429701507673885504773832888178731212460074527612354176665768817010114942899257349101235646676396258065112713396498422824502730566937089237358164609535611643437505650299631516797453409382353289997025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658144606359055955496419820113969652844393015739310520628308914921806342871553537005900350470864609635410978841060965660343653544490617007078995831805614533906504770527431566417609721517919489283364812866046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861699621806442015353531790044765255822727670645936350572878042757348558987682966892335724288086806246324897918958416944579002959286322888293828009160324606353202382231247377367874061794090104138153305761028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333316884026997670244732749061897363345433278280820774402667097781782078312085726344560947085548521426584891018495735031866421748229856734063285256420887466425340533950450231027544934290191600084415039849520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442205389261099549442891463675389578760558424841902583118172885021588583788068989305945215392813746540887775361004235101493108460765432909460867969100188403841622500908888374112448306461237752331765454201486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916365374333951451614111072264561762822599124788490992848729888705298083065245993551737408241133677579727233568268033781163575499834766699082383781455439162155128563855768188044803432132102939421624081354802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579386079021129320328871749951452720450623958005426893173481835408084873470938873886190102136217565025959113514421270210116480930930374941672915936245687860034660224003395352251424491516060429976479424234983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500100320811594169604357882471847656444135133850918620897857462180539472705749147588858463426651824146838798580804824882080550201928877634902053551585624001893464332426863663411740303122342371725194337451401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076071417857800275876080483325967588788531809595965814816008065212981791958439859252951844584692724664770760915168517463856471876221491932156230101271310528445074810700265024464178587243567799221303996521838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501440513057481801186730872375965246520464350934313039666558562939251568103816946666203136394399173448967139829815627411988262723510952512218217047506862533992675377978466809995420421499113435407010220569268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873547549110776112694702987821125647656814915666919095529367320559577279295129820907151577300917884779633743002145803603144778906200771554904764805424270513167766893532669437359097224008315940237583883147635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702435874381211840974392908362239891253893167318426595596595484958814557352731191074691798283457437678588414439809369945323260657259969758824219293587914543693491043904226378176755732249873147569570134160414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033253578179240687001068616506202782368106342928741450813730609548908924744506622773308385268109020908132431315118495335969689890391031708643714328426824906481266624069267042133671604705742655313824243422085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360811160079801956068213562664092459514059419198886596052780459618987988978124604450752043911951087425762535033742853443599668025487721129385619101220742965112088842954685544392519090409345969976232251366844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608485728705025403965220624984387807914212329203806188310481723210930017201914851255372112309151571901612713740653683546403459090175169190773763122126257226586645496449591237496183719395515196650457314903486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222658405359526390985393717661971015878387327823837558472442882536372621081866574074402013077213982940343245984550348898469160893504606046029720752430522250508848409813445599990758681315475222046561457662331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290376468444505822472220213238638855714513234749820349966040662117777729786064434146736621110648053316143070546516482946603376435620929127032409021043510275954039706547299792721089618396731508470303622049840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238575142052254708190896349914219443174041123748517288954308018457409103199946112805564334422622895793405173650295313360283143297024936562201188073837965968669385630403655424493757197421024937405701936945138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645713069651650016227778852738340725983559673970824046315259176738042297431785283156494449545036956401109369855817985115027211915917638004829658130789859470397312065378020322760344162973296980120590668246901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788499516885789808814050968676482560815758716892137852614348240198670085959491834379968727493803924399001240892926764545234221922075784137853342487883353547493246859780197430738916781429610504444966285797198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109888930622886966132631217557575864832627968571141533502647214079502359859585276482031363986556281374476129381484774020225044508591218250956247790738896549452650203707851005311569656220298499374750861361904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051406820050230929661772701854460037043301432345251646866456105217206929060367202733353961577082848882372881358894045344902269945387687846572485781928755820170263348795417825355455575490682500699797395059504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987774123819889586672711142729583108270898639204621803453794556243397185624971271409579259619230781884045355529797774221068893673388554858810722367687848593822515403544099482252905928348478013601350091515811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961776991063339146375805203581547030622952772170351482123853049326570584461131965622545238528606444933091816747127236972720295002626694938676067390723574413268607147813063279625225213583451461753197073528090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023070223890981607615311099288865287256021794988663396420618209213160431768011778154296636735078724191834058059780194136413801628579298183208684244469747609594675465935139271920270860666700964469126425789697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998256456334050138496655764029708344806187866968931216351339668783136235117749794199305482289866190400647154359595792275442777794396672633729746627797753573196084347249181190210119294392590380260264841748444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174112107188413426878788829800210711931841547690632321330356647042801998341625726105167041311684938677002775094988441085136931695644486075931708354676736901777389429731545511459227701110360843055771824121223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791675253063490066523958044028984353925557848458072200332029250346597448132614017337334841522087264985836723648805643312830469305304873539059684897769410662489968164655101825562769089233065437474773251574823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830316909605856347865158364104095218542189253938453651900094568218823512196785349129074727334576190879527700714534296428857778919797005177373318942564746778705951416709501512543632545858505909277772235744136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269975061123929065905556029980618277579232119869045159059424907676014494433021447538110788616839417362682473795362048578667366194340183753995078873570769569736334890609662341520330327366441684091559726750606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534230677837450373992155604973161965453791841362376013666098734374056156461634598523847828523319730791370198250905853269294286401288966155623665336680867967626902193385870094706204085027017894505168178682770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669975884128896586702428755687731235900349616499576082923775226893655570763541340826557724889024357548539752579091134201798302611534745174893942282388277104497423443592282036621472973991367403671012159709430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658446853172976638859223272280239229572551621704395377986809188708511955501483450065354205895881728190715946327770613634760904731651841773200177627496686192983004847842222516625268124106031714365194567283488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253152483185016002550353002350998118745684013978413245041292489951063561883988605939985186066266983743068215608935364080372210569221706210654029033468957152390066799698439819719944948847363799265627137914408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082804253485451549448267335177099158651397207444535596290620297896514822799643822846241004949253809663171584947464968773242941714860117757925464809222939256348473448497344768767897255186768445780419301043588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803869359050038859150041822476926213916322211511707329740757299950592161419534179545395648258069575581914101054740858366976388974854435670380887776225342372523668586252868607011120737664441770347592390220540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061406784309559634661183009377235593155008408188204299011125362549515865879877793320160602302539963958208885785246406838930603148815511881851063392801380688294775533868576870062873818717550962023016789082957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191228550875257012485553034958425477551119231041741260896041764530473844861849598768824455494974223707962742522613785956150815270717355225140609247146628770765759232800006362366178185182014661299689732045067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064599523927669172889510347832507317813674423737276438574252177536186049961577845164056212512007571126869254391270548041741306290852654801964879811114373415755475499917082236619650715279722050896985205136490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462873702904040975367288613066251380909350984914309152013685940349903629793136440331259011869648801208786661412089289781050701755926315932894759333535558539615357374864732778846929005148375626964569271383010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004581338482133838010714011937050319998655891249460661314089799465045029166977232883060195184978556532435522347947617679257654458205266051679944760722705502604025380693054988610650921746556588887301788838412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547926161961736661796689247300318163307768429123981774002938069046482005059305672109704707235857627655971528668574058099115356058690572447224208349859427076514578043398793416795768137963620833903950832934495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836108550167244026493529026929476241342582563872303197435078616064617695101218541063220308171661124148867644033887297576584439522022196100737434541485089168713374426783595270561315212526207386933218305935658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059357094307672370243890053453120967003508961922242988160876864329829397148824960412446513280821124892241883314447492688036342391829666716628224156781839675243796659674581169914928136901450227978013597693138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937493406103684106738600541100262787008747059471065864514391969805597069505565050151233936665890571733133644764213070656757319919039388118938253075210882859516147506809468839245740011135470274786982168621274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665329718238417396919865871333134120710517073683417241234472371867249415108427049615549503795501528738224860538460676720392875868626261698438228056015875786683092512230401599897538489228360095980752159490258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328658439340262938268563715259623894744717833699966180201154788249913323652215956653404857011232582770818862150130715779346002743951689275243551823962408391501234739246686510022276735154153398174438062936818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502499564681941064704071227311004215441855491231634073401961809074987236703389974993439243991658806512836679056416957365216050282244885217573611331742947356357748308478330984929574305730604504128402971148973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610749091640443078052777297700938276873668269280836283467725910032841281289357876118865330379943915710991731308768414829814731674389241507081233304663866652688517152287734958086507090211027130801148807052510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097380223970667333178847121742166237978339505084945840564804300591120184173005022419629811376432555086259936672979212123968336262543307920197457555379857786033399361139731479735858804674826631905550317147510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755983130127803405876733811345178470423962088493582933994762948927492630761519594758086352305003906352697550897371963214320279758088695852977316219835944256689466634986556641828527840530710394603837055319530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129111422332742480710512027849723849044026429680769803440316010136598808564229607540695695571335080053565951888414562653198365459981493547035333965788049476127320900485531135908697471453536890157189698415775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936089112710910309973067570621865972967346398430619284295504292105466916091541828035178323684155218186556796340711124306438551541562489751763977188126209840873609829923836373030275059418770626263573784813688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127874191392722798698022724595229401524322084048175398124008257637136067030334477654114042743699620541251450482700210515174118908825492609774721462055366779007552008799892323465359252612737727695456712154449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209215360832603215306918572722599298600395392547343180646477064441544096308598332098942811738979506827495524870662827328053647924741072354611945944265379787498697959643221449501435206166327360833877895746269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319501323741964534289761658135407331302630302854780224851925520783232374548326796328907125627475246122929296414094248502905947415575992751242508506996634735376429407383918207419091625416097284459162561447272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915085368923735127485074294814451965416938229179315309180378204728722389455877264858456583583688835417610564721255643864015185687695779882751742224347111155262343697211707633450466532724766334237821195879117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185218845506821183608568975632511813875046094241955744326397198431078927752472356672288395527355236066225987885985396328772844546836949236760648441227353682921913245547040744216668206746126567079643012005535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357318505215771516084763131429710068248249139162492892556126384767386218233345228302857013815543747650578465690588394825313419981396295736250191985710580846679236491105929088055068338217718370944062699938269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219345316048583392126663772506208519054623623733732811425816643842498897985966795417592003691300453703719627536068718301376481212741056148244879598635108500548734902984477529757534939665530715055154410390938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998324269084530478141991498931107101571694749555763521945874576862963018389905824201278786755796934723185030744610603483914598794977948711391354629025486282224974389447438682661643606831812488598723268791076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108266360364314856355316050499154144130887215414433174525373210651396119733069487813913096873318613666961939402572004993080999953482194276558781132352187781245718342397646806973069793406081383018907785379227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182664776888667725021712329415228978446162910566285420071453883416781489134566744506929129063191356184691533158558135076487541321859455745770156486652616746620858010700235568168758105959676998901985472706417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961797803655471501006418180502754073583631210075848690420360453063743034388761523828983557372852602790109658113583990082025106415006848860377851451703993626938322618882301899591271000879075416628748322394452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640065209962960096641776937613082080687020130883472099991664558057470297265064248590310071846989531069017432283784757153675098497043483482059931223224751985485354554519808422814507464169325174171166032932667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221239345266865799204423861484757242890105114328883814583700148678228333016407276114036941362115737169985605841735445608033688890692524353381053971593150452592094012886826761957851131323839763615662128576482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447028222175648273420064615301617015673045186184377052127062573422587150628959854886176205229616886565215837784247149479866487707067324817990842497441413030772781221727570393898531076626569482761976332874465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062511078456579246380038273856860224589540614393614994048484286969806483262108464380743336558398688089988471514295701014512054966842896674866101866876512973139628321441026834165860359911438931807625644344609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291066611784943531672592385041053779311049081572958008218904109965374052294046201984820594719565468430076822037328399061467920788031306210807428878267456522279510397530185492450108066714356522034098520971712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216339043317628637080958285081909697417621207405508511001815330208171813671768543487272089172606743181038687549909642874280410652857444783139948749789244343537320188375097795346044005281197852692754424896325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414162494910515768227117417711932232945391974092136590860000476202432818881161163644928715559908299814543584037170956530527567900610385822005025774224292569773732296609385467336929449681543260568582340850739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322183356239637398808014246118755054609555094122720020016673290789780007096384828312446295596545022120743326436571869713451446896888922951080200162568079951218413160983309702178276860244871443361314459232060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415404772322220839208036324127217631162891881643394036869317135582680006351732097450524378305263342982051585729293729065144082252093140038334428600943717769650829294111897120873707840935527547594667607700739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482449203287338602799204201279950628458617692934934748645046491968635338391449569329353499139922453664188100631030710950568773445423096458954361418630876241494447419866698347713405300957797872079291462389626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741498133643427387980302577970218308865036418106221571029282021587181445626643551912892390746449491042735969276652311469566584458181144763773752350128593126592576075055650198433567754320917506901135878671619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738087137985338962896830262981628055301107557758978534823854812982810501496288588718232218048882601827461644879029172841840002936746970665260086282843883088133563358024351057763528593351544438010102449942174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617233660291719339926167882868980057891191156961286113730404222996244445645228811797471536635791461504943812179699911719553392915467985888569082819110314718381129967865651453059679813190800422182709005693044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095966444898776041743786038172342060790714371194447539522843551677888570909340590984262800755500248725830650557511259353896315171826065846001289326829742161791308116878212721039217579698337007055600479265997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079689360407597750180374094171469981885046628982630503406281730282319799125530918362807799251133065557772589580549721937547685450346607218411557053096747424723286992072949541768648905189668750773621842979151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044881036662552958628343438480462678122147642516601976422702036294508798790923068997762622023363411771182015399050173071493996115548403715228268577998385109384004528263675761260563984391352940873945574277648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686177696138805006592509070252900155749948752601372319426962837691739012328002602992780683106302734901011003140670779004579276982793136849451630895091829048302965001908928336498837214396180793208742328768068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953790032571643627157135734722510592958651109840684568971565825455725633355594576577747618020156837852364031497853809831566253185809425785105813904615465248072719832909577295805530088357643935465714579135927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939230896227344286671746679865568253732514537743009223721202753169385665977610782359801886307507560408367712741871458966983457027538487036030425842802127788310713511327727774992046483037340486427902258367600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551844344516890334624584682912414317535865749891247595560896040292155393977446428877279516223061246477930882654235748010717809152774016548710468265535703098981310831043094866753941511631676658281403700866865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885144100537103141831634743367511749232053176825839150342354505860226305868702779243229691617545953440457447399711712119207789915812180624709441550694727351401234550204629067783378176214191890146908807079818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151766201151633013365240268650603921725403434552867518082580104629058208364681107351833729751961456122525371356771188784251994023543962242477517373345353389150726288232132196100844063151547998599521588884711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121793285779630213417290584506938423127857447098281990368933332322524565878486499097175032022167285214998827754658306559015958435161855520548978267361357962795749330522011191610842080236996138900439932835066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244609551483125353611287145210743043635547898213697720092793013726170489082803939099983557408289800561303263280487840702588019085387730318818712730746136642050910874961241901769134499707745752836339783231561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513441990267728610496870350607337208935530864008142659916508722359726946248604836665891130395850751047449472699392645264605522665189249764530807213109352096231576084883113826036479166824680084142235887774104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215239779289206763896635896383566418058944214745396226231753265579725268146631176978012993711098245340522927093300399629513714438319513505731788056663961042122577872528013252838483308299728818250749885183147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053700772316581952105304731149144913758587914656238871946479845265284802689647131727151501040126023071212228792246888113632874334667237820558111794202721647922565370422448776329697012927691315004252022598108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624532495103390555419373115567810960057360469040879350621298748824052849743939646946584677743623702801414300304401661790116579760269790511369309091941300404399250566495624246838020340508948029000263762200578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639757912004701170765647978008566264746119214932018152685676334858437821473311767753820642489458096582004134726957162370383720779356597620052278022518225296320032536927653198445965838103755079283425278582591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286021403190196538623956291513139154058784966307201942185802070548054644775476955678720896015971790736172414061141977276502529013859928135313797092560361206849838882151922518132179980933359782131751070483806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246293327028353174928410044347263041799008694169287372227838080288266378013920532928677292804236565912564514894549289320084006096841831783905934902376205000224339124261918283291801084770695741558673641192801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752664453382030040955103219288976104028788257165434018178388741015541294894921097507774609559771524786912881124482928425719746882048856549095615768512861059352678026561439383358592178867356600596530098536546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136174316445378545700731936052197001517354100766869601305437275881607049987789365017422246617438193269192862429301061984254163460485330613122444410053811904217052950210203949284993280229187520880003182408337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708794901667727284263034494974713565876728143942654920526300619080005910944956218545217579084841829846693841949558812074700106037683563441033205450016151657240720125298604958894707972183425970164384759848658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864184914158697584986602245464927651310287275862938670400213000595178163586440778748117806522568506530713507342458944602683462083458031339214535422338754448630386070872785027777775086776299202224027107432459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450191208996690219737367720181554670989399273542199116273165262450694992002848523663471619210135317944601819327396072124887398157503934618170208223027956393354316765552788502935163273459472657951040114997344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574559615339198458900273971574375380224264155677787593079348042453601445500804634412405440897265939966330079979725921292231094194707838420418307596625539432445609635895414225661367379692854237137647495263375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142891641757385033888100786002186250388008817542820476784272595671960484060571210079656164926916996939208557744994249775621141413333243237951509364096641340808447528614157971242508505925805081064620512457221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666496491511396292448871057045643419978174371093169216647620690940566563479122208766735316201439579444576216638684660165500533947931580877471076476445478396109992723489002851457979744344660440511176045586177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954184083082629694214229603619265688038545999145315531953051939183455018588454934955788237465098560821298424007951804176372673129537115995329871379480968186645546885144362583503666244085255859306244147002018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028132584191077575505481596675431195699439784151633240688940704392660811215618619025303220713906467697732683681506611237692800248968355757137231128842582768928782310956781189966969774094893487241466149739727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408451818357188910943512641768469147790922528378375323956019474534909055101642338078115996634482620714158723813542032404931757575337079350969461348285274651377146834205626236321971729619991708666383043815049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705019712870766990024781300851305272966844060610164378230719136307049422049383419600953509993987135158792521973942806151356564313408161568884901747824857836606800403926759962908630937903111506727671941876882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730738778094787723527390164557430678984175586097805980115965586660818087835319300271259737913358957897334008763443118861486976837881121510877126677572310183325111391985166650796809644853255663841758311669493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978986496300568279073769198631560129161425693064781006989197020226538674162603049633997127366767957428955566314014881184615445820075931678835668267089919455698580240906776542744450798568453549054758781082742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539549957229930180621792621124071101622095785527048886053819284236085295701406576742213483133260263421770543730953570108907807302213549826362852887826558691568563466259473132585195659138468924462445834402277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532204691459692215612297524374555068820561736954940666273325260413704462908654461510442560076329179486145106922588794437481577891250885911134172233031567497381920863972206513520158280086982468765373753233446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208605552447339121171297976729814037989097286506976492032209927924040206629297956083333483709734371103831364074116484760050698520156744722778358999608425578842724735306117051602021864568180148423771285876616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594010471612965889159165679925544442250779692987057697058479143040118254545356111724273371399999432672127719323193391300068902626785230042044775981367284743790128671709651764782559460090760126770386665955450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012548206339883390344782848948625326384370394044505434363120240495681948503862902856933719155477929628988453250576597682076434462946898145244334205580449946585823750536595705362244038184299359354415068135070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420413852461568605765628218747553890252057850800740693372942987737463057925699377504026856615866168040761542216193889794638536338311259582441879709719549522407479595395194229768582513900769548365478993386356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146928331218471752129580119166422739351443766983751998453064578736640777380699652918703123194595004164514120225826972469814614881846289049872728361923812720419779161557131344799687575703393540193254612893602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650186005981164172743826673072895297840924401656957765725555729576130242533547909506761981919701424151665935744603959673618532551061007924434665329441818070121476460301248629639975333472474598343390086851604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726258570251121046551644620072039153746473932152920633797970985170747730380605362838981511969546064420171139295668853118832806264334317017170205170264852813184125163439247307171335549506051586713611010580504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329222427649904174047481341076368194957397746437968651830444656683983184841948244176059863821383782353137304522859498310101762249439405390186494271323242724894320227208505266704016110654929802726886299503201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476781940497301003751985705416725276470230859199227399842341493349983909786403439076922427293376689266049349441694715697155470599042174219258825753425929995659864267684514106123846878806544579177175040277628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943734521094285968471727023406450671007142874586355868678236996339079944880743760883533682031211373244515710404186429258794496377751457723511758660881749387826753877641303779519060504064763026806474269068794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725705270605470472814746474462082224540747141694065206969516760010559177013648971322784201700335664320555114622179331323222171193273734777157788658376969907911711317283537401935719863182444704761544818457702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106025662747574796976374720906354840294917347274873081201950527096375836074625454793529542341712726819813399026419025763373611656973855087441302411046998364322210012677286821809498907623686892633844175188562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729200985408629694713225986323131712732194289141354943233591229372423096601546164996985579627632755545779844544032230409049346593466633088573695960232857501802685021200071271420765556577264079830207291948065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250934418257134216136144401191522895306530077790539720033966289417946596417779835592534222877746564000343935264773517835159330557199471598121250380175595475777459515207139084336100115379049015078907056708818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819896052132336107052144317601499501995895358971833690782831386342368579567965634192930497698152099745288783121459736846075674766360600396879174354213850348953262958205447487692413303661183286891127783175460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416566588706989890137538880243275851514118584543536529874915727188653564082683272251101470090989862716772241528776898622677036983969959782816557940888253718376453740221818841187448133828794719644549375700207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461474910278915546521230594248610272604712698132414938149901767357489609411826805047717301316458946823454090750518616610154107017955417597598280422938627155510777799674591224661638474771460111759759828042293862715551077779967459122466163847477146011175975982804229386271555107777996745912246616384747714601117896485867721918610441753073190603997309812718219106724424419481471152783430392065368122142465502269302065675881276475434385573474263281549277056266006654671184876520726733565473166966217706983364583582683020776633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768466380962417547759148309642991552814516580372824423195752092772658269323059752461245056435575591405340142976750824433474662439858343761487938996414440251411300246886937195215783044869344384073455908669094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884755864873805830893796002947147554901679495904281561842872515852939829836320669197995673894788001995879803482831259925329759910502073507362660254243105132862940349554176399109476329448542904448102689152595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791912595619843885760951802894321579652120565761109398991549688403137754939354085695344990800901270384017262618018204667379599468295436971942325792206474709758952510700203774171942638934649675715427250404693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137282755286830645433314868809215169723787601375527981104596698829177796241097070913703788393045064501245988678589578863709104821652981152058332278081779915608263843346554197603150488841919860848406264900399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203775338836775496915720824154639242413505757494323179537955463238524199308940605113410985187805588409273559116716167018711815535058236609856919392270006468228835899448657522671480046316567521942019661830703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108047795784144265189977886011402027123294823762338268920964111163011032217548508094335350434077628341593003000533913418044642352624003807395109513701115850953473248223743803508935289352165877809760032571212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346515798647750468457586989391963118824114415430357040008264012677795384110666509640790498752217172264156490434959626706563289904578376011368513262468346021348455756462607773521883602166221683273267524660090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871074599684633237610502937874080790673626883143222400263425418349464974943378764251078629404943559708895096801337624024819095581134913297913613799767020614698043501490706733150637876240206623907027183279048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758811358200725743561685767723665936577518536374076870100824867273258270559473587594991527183547659915630391378571672985440402751717388265873849917746309881277693341113336407022766678610507168850450924177681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834850748194540118577023591724690129665114821500743422992828122279978737566992007129628455472834859249657682030788467950647021947309801494977443099497791041466285009066700904219602986633110301100111327823018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262657251636400204079984714123360388867468340872957614697626597150757397051452167403880838542015319849409356208349418084482165184390718645485793541198865262240327191774938527578225038226935970540054945456324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815071276360054835685965429410651704196303896699098713022758534590416511750974861330271136043531703717184168098731418195850315648707721494788546280039262775184566504309126034142218423042101331402856915028903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621797082454947151657388079121305594255798293659101859295214588919897364105748908948877461306386842597756423252686346343967798383912119284815590463257268442980690380184893738786626776014667556930214317529099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038855909391789629362867921956985672207711451676871151703638400990180301892877956685297391770541609614530699375915962278339171127981012984300277489093587489453981173533815768461395084185638045832986728493628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359419321526895090145445952416961136980647081102315333388276662298702841007248866052876037540430218578429642231635313350340680402784441475200826890037863547841565363689567311688395043354563178010166155103643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373375862772081968306963831805881107893895728376778301186999700894336560624571898381501767465512480893494477000837345306194820022438725236049547571173946629136182524460576260094886690256581329311350674437793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337393568736445574675696601191916014388077529876643945135794760714470988893277660530741163115301391104923282193110588097367047432344058908828564002679759435346427421078414906154092962408338791081565789909498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755236920077772138117964924003615902345770034941153406833557382487391313539191475815852762541337589984203618879551380731734622447712358536727905300835514369174708516100914754482240609224557576103986096635678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193976522025724558400814024130932133420950689694190778702026153575802182105123290813528319509157259925550067198796875146302345713152953633128866961298875104615085935633839150702622404505679511688694605110946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851732156752808913584883548548712412653274247165752201579356043381984648837766055270265526784708356010243568608832661178809770313606137790936091130872340772096181023901578532920354712719691056747947044146433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346541555378014662305783921185114327966512426186044783706656942465109697462111066255726717641719632000060679461544447383009587849363123252352851899857198091600068141919186168389015181248046434719012840007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833332452200044042973126122516176556942460302075359589324020852892492435270739656513885729183164947634488104460321439087648326551672987621999736837094585493934338332588462059401572984464297862778628233290690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845098807180268203922028048492157434242568046730697177121873456085715203567062170083893698275361917197371079407399906036839520612792285497138600225654467398562769675644776992563009495709270131191929824955775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806852841944365315510971335681257482834697901789014318277526180883313639973602829599010000519724377015255864819106123617676411458323693479550647375250340609927897230719508277849700119603131624755510087288521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099770337362895959783509532523598271289649198711044815613010829185812739292211017926948642819683286246929210846438959969288165507695822898733723861578329428488075621932309574063083808914628364138116929229083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684451320866302074899531698788879839089895456546759232060581922617788376612225335473386370967729593023991180556622809264950044987752773346252173326389389494914654038212432180736158453611404602155525975366720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104233584518310227611334335804789714149771525157789848298936164491828979317790326467228749418675453269183640879828266619105953142528663092670701732405950706227386670579287338827184951879760685322806148088186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050519222976752985296684867348368116257663525545752244031843922462332556165225141042359232732018883363608901360504726337496205823706184846895299865267466363021958716136936786724835356109940373813996989004405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114350013503950753484896156924950900207556055754384170290146078181869924923939119438241100257051821388230098035458587811640045530311277179266614743774837366237460202073538403482309687677893623056167893806731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786385827743816547793609856131567793418000201475804245593773783036039563134913576340135030348407399275786595343912755160207530865236538527450378885971248667165003987741926537414501116049507100186493015358275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313035164498978068477009241246589017179499863901523452423144640733146239704547452605043018742129943821257064491507354692970932063802903775911881873901579103827946849262860649355770579275356999844748784544845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825109234007688626817381428582041411060789570114950689430862796526028879535397611684580730435299656271220921968552522884916973449075278234090379343664317568824083192949783543147314493991484494446342896571796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630282068371068192586367561616748830031493430128105299599888061886299723689641652045680607795101009177465730814546919258132731296730255920587165658804203391315397441591728719487570142622214719278911066027507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219471807981114503000204339015792043931255399519222609088999712563092330271429125014403981870500420259608780870813586866490177244473695219446703490650223840969305182593996803942103858321601640076947789192421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270762185606643959788021421643166519009607281746064137684655528891861819603488258520748455566190896931890551159916269087256988217638846374595506473777391415806674076650097783414934842161844038388310937601539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894095305260098081749270092193326742138874489748595826098162781123934793382770561974066637897136621101115062064178327309094386421044341001568487946244696759993524704930849927057311124823975923359898645282770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665784539260478341670459417691748946808253772836216066856869113519452383389089189111091279851458741407650285259067209111152799259142128435543975758998522071759099462414469284632686263402158266024982921158694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777100171685118882299889208472946752106224245534716079912083220472626821596886645081673509616439339924477511462369670308230209426462536749134703407424587665240882619103362519804641137116122739349796447567014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441126591618895177662916625271687217187625165136317089796176464843096986550203832749903690139566167724533477735942841050791076893352387935549818784678123081259581976513263542563940234617028903607081664241775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975970409314814919948898722867822674696519315663052914595713618397495524748019433927949365635114979908435426571310201971443459520117787594580375078746251804995052213989814784595033178625784899977510091836758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497319866760503046989214001220778491865416706288946143739873621697146657403395403546570420713258686633362792832121561488105450732644643989838002417068492199129748009428508166943564929578343441236526169848230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044918261866426541508190058270723588418982809980191510351770638816439664279347043773648026957853681036798665319390376877658266085036871810357283666433650577172278666728793090809972219221888136713093480501052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233303716719601123523444074752681289283558682868402632571605697450019444495170180661810819064410545524662199746055108376658288581298144515267490380226956781150070305237616097616075164743583933410407798055772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946291886780557171136878610078550074388185710641269205096699149289422749742545108502926884893954474822863067499394273403248683744914556473583037878860598475691837004542330128662758579270951067896905333597342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841692164076089577132875645199431380232720750051287556376203397533006053915208115880105429443178555893398246356458310469241582866117884901004634140760949982144654146039283751024735058944073491964954037027224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449054412980974841995536896369963547172061818135855259262329953991693759170924286136642185584676677206230544414885826253705320824543744822903027802706575103800171088178328186514598655832587195546458525341975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450013336131917131976208564149148137964066304065403542908487514460930454287978881572479698005656607995943883648202831603389466790445113655307314233276057871082079267604395353546642253678185026829228847438639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166141331885043846980797356017771048117683664107793967943620268481911773148240899769255512882631452780126438139137569639489110846479984997677906299545449515731787008040712480283337111702642723015442391360206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525235059120784146707605675873673361894111742761679155530171994367568479285326732265780455932978644256669444338925456899171225377298404289632547282555336798903507722310316422225593686622402932897079007749621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565430227984049186231967906253176993147358452802777820588676922324779653239355985991799263382568607931297153065955394878327773888071369814974640506625175143141064669754807888250621080369303014952360247668717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684680079103996224531505962071620704028551570261433581030078027781650237751720096785624016907881512749267410160630231957867333096674195332631791548690087721251730723578980925225302256322654190233991410380309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688625658527099872906016565710880738948758361695217062095632682460903996183788978720182268702378535683441810012149346172306767528635990112808891008964737792459795688250073985023807750959129815553066924895357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973106516380743553431261006909674537650144051981183492353188719407993999095538928957798750477277803270846609361548855965799697025956232802846174744164826320487241282989494781029882283774618561858232334667185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656949827222067908232880702415137352416231227477573032561247042685443385322470127977785997835181995430214875947781607618852708382020848349974712755282025796946996655381939593798289613778443007953018540036966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714608372797925961459932392110170397337698734954390474516654195473774411618809167007285249734723534800924594736914410232283436343841037207710013462057946640670753098240855503576886997007848143675510401545336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951358679018700795817364758504070965634445300631086513401545686454609857793768228464230331017327992712144695553139665054817276401972657906219538813253509632509474459898910878590169692258198604873251616314872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138345482086953949114165419212244103725882353735283296622540405395995512541880469553470169279658180842216911467794957709031814719952242004890588559374644161534909346821095273819069249340125854016212983888236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607341762034842422557974325100100386436881605524668277328014816697873496332099634172377923788303516605487167179287400111914472624567124700249762245822402739770702702350323771241691314913084480272640099449725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547190212964624407218786854291307199115602213435981092612780992449298835321421151688044305242231335172036687591092061218171572150132304915038524312760160267807102779059878363028490995133233325655424283233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119052031620239561251550801142934559384022589044523549160677057526417751973609044020448336788189156897027789366044998316755033346099743453906679681237983313639844586220491826985980185062808365058175856328286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644940113498654912082100481325506837562819702568696995491876219763972045027900446675639511937613156006454486485525074979942085002895444499533574504683662276687208248316413599480307060161182230915617525952849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153031479114143357320736585904930427733798447129195444645430440095975183097418233761863378115291280151786636009016476974544958957323146795549938933751394956436260145495926467373472160218853132654468600885372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088686475757669825323540442454284008826874777703285382619976254258199293420591217977808277870511858452308972985638768651127507276341003599414660122279489574955920360994603780484838552595991081712362827442040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453139334536645917552581347550463442671610948908179968959226704644021691768051005907184473526312354164424864777438787765173853478975014025204069329911353255614813604353296831292899129535615290402759131767734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947951691759254509848097911089233113778953966407460834573009765117060752414362883466091800384906356926853296400551653599785791306066404745571908486625041462763357204425087660332076412002768371472025839577572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251844164898191969095582120789897267176461338008395664877220193204636718817239547049302092798661041184695704868470049638641259530673766660389421761893875423752240187458159722844252290797737229255101808867399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157558263070599485758635347496397568559703862678054007200897450252705193979698125296883119164590452097563052833730948602383296272132256900737675339111682947198127705742624375221375825032008736375320464500057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956752647507452390254517053109406626366824745757346070406527575357774320102391334113813577503322561143900976099469521398177028414610884136085659183932993931358081952707069270927607721717779098763854634460240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891478010944345098270173677240979049480592883846575269082140684093675224888424661256052695097801012605772822873599379849977045731761175869419846747429048640123199674462226863633260076411070293488972360126214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154480578978170504573192258815494311439025793450499895500372704236182645680415899700136977093646184318296660690731354763645120346808804485446394798810546809849670131795494286681388276584446505851797712368142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250274430190922429627769366531587168094442427862498407494665563526804502768435782113627340694356164251537923224666458237107932145904446111092210703976045651010128697605935565797997230393938683961799189869179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566202333951957558645128302417714282371577693287679784522757104237281724684454616224472703666186405467249250144671204565478357269214470538798054274436506654919003697852300703720061418372571130911168102172286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994067353165017583782632764100489944648907195082147841020836669964415554899731185444595312327881988435193646690756191744363874898626362765030272068609251880972360884793801625295039225521028318591195209521603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659741400635166538527833027993327618187316429284343663516156632552808774054766967000188148312992649497560617449945560484056516920660629441907471164740575561955183453874064046466344652333203510377844767588566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639267852219176238547538197108319832284839469222949537374931725775542580964794985891026863594535761355146603751391496845122967455478424717793060749999248715039173711331059841824004577425759178667121950517428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686569214328456590763877035085454922881774592134644790364096719378848001565990852627617509773940164374064232153788341300502620171319759124864587923006850025338135489151319984710933979884365446048272891549710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312054691322386063352687404641869764975134600318428982574751202584459831039820140609484687076916183830862387891061468241972832005261503851106819905835176956323656969414236261015215538172503693919882029271368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776331655021300744945298954339617526611749016912130058109554244912267385285122343836959839780483975246451012058826742830639996089076557344363448014904882983571898164096451011928985398760882296922643542082445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875017925188890050961627253029063851224481562947348667180792167574395023354187971463703413595070688796031015016464474223923286729237172565384290147065906886729406948425427159052053409339014321081313854582597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980220431073829668649070375044538684428440879094580713838962095449207599615536655713068440469527129948783097134507882757248448998973497039622465110498777004179371263198665504248264504271322916123093246164135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873634570026911192432496377298229400944020752024662066447383917204425754834014539408035462734099909640690720756229073746841311985865787988559142521470803517849673589369335350075446723246131252582687046375634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571731999343128179691294296204556952012433154460835957656507832446721125850077609968907142990621463722501837031998516922005081391020537898391562299250064687356797954066278295022474592665617686886293211625656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495999726278798874206865377484001240271202527473344361668130227204754587027046409864346757364149445560401804690256490853251672716709512790052393421702743032886141323309616964755602018386215997872360962122757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382491142283163748692878538148143146224283984962337855773508605110105092612932309949247418926751316188186207532574038684806964904698279991221611386656638203260191359684025156492479064439833300318078952369616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152222051048853663827047208352220722817923077243786214629860668300394431840318971195938758807198115048397750862492845205376609935703511384695978429595440648575150506208497122812336063954148045231830375903923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382102194720212488490442636553953053943533004050613359968320166698794772079525866914331899092118652260584960881496268365467234984048143810943198574036837746637093658063733929458794664451682611483334598089481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553787286959872245740725586288916275422740013939248909372055545616078424153956188399905582479740297074147881435727079149221043557745460934900573768159682819680197715906457966057549425418144532992479819966571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638261653072310606823338899995102553073274412094269941379201101046632087497154105874458261159959068772409428697875946269429880547786077645800522940757030840638516043605931255565855331231165546386554103007269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269738474469674793817191834984412010284235192195947941188864520779602313430632171743540692488623758813507950130195421256853896066931254279329444504604143997511059306830758986663120897091786738144310626732857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296191368983822274941558639578740823780903834140879297644511888802337200988640122361741764305063703810769278341189017294013294623856393085315322442227688185717288938851686500759048441570973663653939411381414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789859261224877072553707746809091738121955681542467817582498635908457752822108733709471005344704316264532650987541870482604085049432894496711511556404503759922183153150621894176807974004026780591637359492305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283215170817863829715178754102327793778540726836395180372272739907246132811667262023853629580447687448945589355612941667877115144459521507280112452897838988924398057926113395117163372724763220356134137665549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349610211640412992071191573822396496879006157717959575116755908481929690435593444902893696486190086611848364084454709229880820186964350102416589280672893461892128839980588675472338226628746748982760072139691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585204627520911945517150715322322900317837863929972645795041362243073887474295884203865379630088782849749101536714044872706052239832746544345293565280769604772215030240603299608201442874066463090243695582201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063279085526027524578452139311897121959560222778010521705631239634446112700212586723573709009024674069492576669653047973714276265705359574487908761992997975491547095674568662666933178160269499245637861334504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648812852001026105619845278543167673430194180028739280946151948185468663109907951504488133650125461221413542791228391303694726258978002733168003031221980792227233930233396990249323813630178121360113136831038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095668450209965442357785547880065844530633545865197485172711046869237082103742383445162144635916426832646976748511916117839341951421626343457280693936967164403452311179813313674725581030233003356470919313118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451384383311711658584177645106185825082104724546989085526057154334736407766059802184462230230357649286983535477228669116725509292642349535911297780867067640091417604725110184229542894697242719313957825111771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788944700324467944420500623238056780758614051617949156758784854753798036133204588672013137468422277739338301015927873826640352079385737273318787221160069788684910568876737354682071793442051691869120733906023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143445399339782643790560079325779032687723893359704089290637986235913268827691204823532268533111309492766145457891114707181678298795487397796649393340499958044511144263787805500618120194285658011511604965975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280703393036550805203590269022257432694177337833020778508816459977499843551470304189931092788636285559549866645215146083224327029398653547117146112097864464644325618002352000486416928090125195558796777707120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458814933477309948639738318201932446879191922759819287059190059075406735718523481186834643477850541578282244907985840870058612052844716335877723304380827091373968895056845553523261822111023731271368814205839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495032392221164872217861522620911242592377467055016125582354615442087445842149647760255957274029184716453158885258827884286855889496508427039429899354427475578488409253424367596461265438109202556299820515414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690993512487922710050927746141495291462610517648599069299238175990244161879497023565718095144258549957651792962105674460022141336737548079860359695946856983379772672852875925060444184643577824036237766702987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484527323746191137110824464335016948015502532841846287334922661345689441390024706633554707881416054856796686564326698130317836216464658820830050364454812922884964461641012502375768282189455118458059573209093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094932180555689790662862891547375486731986937384664195856188997708279900169246494251903473777039886301492011183528372327919965077715581634061761969840722231867827012354034994384291685565051517438377353920322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254704321409778469323294380147255125843760860998146021996986315484735762920809967022312307799997668926149370948131311761267250290202511250176953858317579332482374758716019598930968995429457152380277892235685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218520586133010759127201284158160990129182911856667157392998092917991491610004660333292257760867565666359653418185422560598843184427218109423181090631060596773327840395059606697721027773614118272064342985384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564105481485307823643720165399965209504238904116749764360290243419567622446851420894565680323277778182804023531717271616138474526434256170300403880716888884214757957281324163069397719048693210177484934395220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812899084960491088752481897662954439463753621983060853026629767762297282370884106403067983957045507986425562413295697069031260693727227049738584906354811946653533660264315355456127620022454365014092870701038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266714140476450553206852545277727133799598971912933510953352183762378144828212389833183922695403629441944477939338629478208565391602768654742216021974541625034794865733087486963621460507966572115585682647125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459012033474871715272034237848532019977394108939918323993534360838319448350407170160500197194079556929169441248268460290554602480556637492567690235856549630563054990947383386820022532727510147653820157189689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195542284969377538214198753983628041513853270951507067783176184926867492451878878256523880787559339874189923941064660842841595176800291899674460456234768417462843614905240996146091329907825077671729948737993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252274297757223532446463129919160295278283878086374379484878160079866918449449520338909118199684001436019370933054722190471786161995211092911279170019766720202163966918422241349535264054150343478493730094810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428174197142241111465396494088106871353167996748974279372263513581038998825451605536725102136416929003210731223430072399556914225246430126273566681782285901690339952558864708517542843979342327492533998925840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993610700273453815684801439818002264979616549839242472149538551664906133886994794487640706256601605517178911310515789812484067441540438634321808049603577636933696507502496754659653517150085997507640004559542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384945382562034978117494710465895082321408204782053999221708309637924719143570526892737882963017204598416396765979399246845120216731557594061085011084015014939584813243143264831706383522933898357328629625006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983870446822440569021752720890597314031719499393757606517044308178435846890232264090670255825631565271039919878744996005669653116942017890333193079128764045002452926077757355448308514991216046260407966357004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964982432091087091302719220736052823988903337764824402482164367448928389327178724630129521377758406567665034225484479527343892962635217069248295722337237260521214867559012437510688636168620684810753252551908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611639636702961676361061209564091590392267597725612770823369101797932402760094779050493905949903550976232855245692014923380389555114536945379896424390775315438661079617254935797164480344612666235380414555736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592641760310046687984340067636613575415938107394902338459599785664900633100192580761796592748902173088186545124915610084564921917339841849364007892425340052885127409782607281844993623344396777834164303286170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346499096607099343125635974902965671846803518878764437192734322849675753487438060586839387320871071234119603308930602352193502379647530151415937286211822952590670185758559048698103361310619537044107720860233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802440109038204209805098188163707656025354228852064250474895868089917946686117193250332482302410598055847663804552137893230572350200971557476025937720767760874681482134522531630208788823985355668408462018877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717730271105970905178115890170866029901605124794507024301232306702621797011415106820022681399975072583213035616679491261005420128645322980067268900094820970758541021988488529545960197473063613284296985538522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140039684807642119094142756812027324542331959311195239505629062261100996439894838164644874586683075485778532874081993757274852197413718094296777741172223936413560332119093344075567878381130451998451486289800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584651723006704488896840610863040612135155203874213928449620222575465858208669864060498655425885908145530994843493842733842178645051398542739742909585700856146256183495270022814173253676539794691275297470131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329178532763420375229756575274340829508454794701524526089931388578312391175126922556675728851334043976962540393117493371399449529356801060379694459568597524987726734807907326761824523355212162149680234492925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551899950620730071403452081550332981497507024426772643603387375397314843137407092665449229520423199007345946393119965350568073329814865841109199443946272328453677112848473622460633136028591059635237193871634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690923375271623551335262343207219430093588150339359897449335269578745727831403967039691001707341493253102206326301692523701801202442268849290981955511719561208381550144858365716651026908664871732381901486099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499972792025835434172044259846932740914178214394928017997456598736982874282682674844212137154682327511285341652370316530704325828337211237137609695939937549536223222219746596193325290740424876025138195242697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966346241992700802576108392749762263654900186532064549951558029083985132726273219672847830253852219047927868938953878036869931884660310436335243732715469989881118644367011402842620261504738823589974728149334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709958430647172750763371802071459744565251418850503716377381890296968528440925819317441005557608985029232710160089825722381739454369852965476949018738404646564373071319590114076131742822038833136029708526145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313279055391786967416355524025076765308563224273784714974603778406460934681299187190289275976307015984088778174519269014769103003023497945851100018088660621628680111091511610409832730880899543375511871831737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296406196310582151670919032631873093381385011309133277093034251122109721550561049138705042621980526024761160750597103794366477152935349171861250661163673833049956487877936569791129319587827777406010753337243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815453612842260155130158952586280695706392444354780239051686133854986192665676227603582349855691922489069011645986609615679554154921575812835409202539317080737814650788320352665134570706553685699281124265670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609458320959625728720309947765401073985580699661980195345005065145010549240188610891341730607592384394612465698616056090945417729073640093913219567683643332996199979654243480265694068369867061758741316765050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829172758078242098261060609015092521109089899643892978629430141114006762877499207817237947462091689983896189486307730602749102670388394335247424342123671217702461011602406111857168705082440491623894343504702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371988421254744721602969500277426850775217586691799380136258422417398560766991654327570612304528672807076318947058954406188421315713800339848740868094144618458542303449514485210539912489324554866593053355845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442091469998979568326670904141398068633325156525696878789922574327961396437026543144639333799000819857530797881761337436094839283022338032797320386536462424980551140224692264789315929449180403829836490348886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737825622127759959167758140385329868885136552323139384317422585356280701915440077630163476477812613243802484218656698552740076410511901095452898382563484070455808090522147697220428738220206445111655802021581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058579135437926009768076362987566147826443389261212134565944568010422276165241837640186734533914880790013636035284321747804016831467261880679364930468658736463114832826980492022787625545401785091774977282946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815720686746900619298730822484900168163489212554337544475803887361586588592485975587427838599929541709917225115340254222296922343661777819296533134967477572209784301938184450598507508056494831896792205834341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813354699137945378313771141354919712434658109311278332662175922275893699347704984352519210735175737020054573451305873132214384620876027751840534893713237662907112055269490530038882280420480821085192876107677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773142158822114859743182387909891993253934150378768995969580432725177768986612588939544201391713064188629510665268960624145208448034034741133148800431386473171584468157548365316705126017466407607280959672132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151115811092683287485950646262362992592496943781822291692343254853616041525142063692521477459809419889268147764439053761119174630260741704144922419498001706238668169466079892475169718500094287444466241005863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945120946229054827542330251732132827853165175869340541118457151048346328320081011525254131193679545612612161031974278321038795482539174314098770652570060376719683830478692910032674834420668406673515088586091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896779899188725826867053775743512465081379862813483506643132466270924523654698351740704265136988241433088355263194547542532484588409399378463186733813366103100581146455151877305014130815666018061132268352963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464410397598500156892102790937867860318517672404695991572340529003816760724247701697815214861519474627054614221125691272253815905020395830514685850036024200549094550268261850958754262109739913220950295489582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999043885422748469473118751974887712150191591908885813263769981215908089691823350590797148746133368039706350036955539422590734536933263896961623842541047946294837937463813246124082530690269146502151719655242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597501969280952048237571389454388442416217566263735180336432774017341259427455820267544027881214092868804120300022706318082593186766481490447257994467045942382811148786117712471299402343531934763897789484462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990818426587487953263601747734396347413330292755818200084648860981832917078621243703459404281501604147705818564413222318877939216398896127369924002251605351282937236557373193193898341753843970830903585333085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953339802968795175366678475509672567390773471816933997590011898911139624652061607188564911926642694016069590616104437801498666998284332465257608825710108991959111180835030365079742812307093951984025480169446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415408408486946485133762274828499161274747053222550579183371978299802173759142434471486634380845991013925549446596674237301191215691048473306980508171297273138066292296784931657070031083055678897912329813037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472024700158852017613121548143721334792656722446917956258633003069945836289103812648952338880763843818809211807397927683141230868809469171765526719713411290271581467529442762521329501543011533690389221384101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021711512731689053394678518738227848515822470484127739268280565172603764458440068284667373544825924969162142390338893181170113891315019222854107381814522925921851485752524761838480775838298666675567628883100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262557381889563194050727520873259994565456085868553582631337084934064139349137491790772182285311600949827036679278923587884316084918389533623615765768334222895927023939153868119581529960664520818861843896972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061232929323962407800474280678081245429927950935051439760211929113037802170395082950990699443939119550034072157414801775922997193282716303971339380034926791334165089113946424796613209472508981957237504911331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751132937869050034120042841739429541445844475412467718508710301949763730646456618634940656615955590222038813571361768234778463109885474803141607518313054403428112703507195990142030588149232148841293569445296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966630199069226106232408625749366744026581397192480133160604128043094030117818395338456973477787554965052267198920398064650880987659599040268354582908404887435901210248570719056955851822996481632457015703748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691291390297075293245752831122063165307794559970935880191017954784682220298137949673390087099348352365925215317478091492963595768036416453157419840829497042403902353402659221352598530803324317858577406056900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369572230890736822583697253467329304349079623158386261263444240863141034997403655086921605004628097939425957370775224212775596279285841773136930903645943638449398233929185489553676473560878989971977807038662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571125520231530878090161943705387176816448293944911865897681228582282863058898610296052832544386045241598879043704773773713685021353938226539490234217108897837100517498175970206868257027259712399904777313320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462570612003467156409034789631481868213459806127296825654557674985919728673797538106742173858019486939329232978545561007900054725330516708185495508295733164530389667280573878280582588338674395672132016122364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434067144662452624788444797032670809204796602152536229777984130352918249166775473338610975771752089257006270953984192767246810212714644651636182903867855736355070011836724154289540477483432843483747564304527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654974704534984376640385989464581448053195091992594514982336136539044123167407129663261870424198840786560346889440980735651117190884162131337038328475271580140233374087460550901973370836047200902016509576637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115564487678447540835616039984885137729230343235300979396783369830091277799794971704628531410043534933382267484965817752353127196015906172828462137140103053343920270345130194910703446174565771792191324143736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716471305699581372348962272410151358146339359857391762405734462715784143189580687674488008034901047315958190724146417291159828969702593777767500673203833675999208981411198985757705456900880667351053470372132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195510302515194171781239124482761114532218866777176734174064523789930150371042110232238847769373142553479838888837413246016948494522990510710895587932162056322085156530074079505592494459743510349190441133791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362358342678655320477807539090909460140438067643829114783029646518215386189201400711494551862692991324737572992206115252478291665457569566383251147867252560975782740644380460707154246177387337680719306797191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984734941390242082297386601437354856090802957134692265331182640679652544349899969780862934703855361570010379699864618068028932857297252901428290197040501117093960401799400772790730059574064535290142829019704050111709396040179940077279073005957406453529014282901970405011170939604017994007727907300595740645359239166638811445976418742692009378297052256405569829948514511625396658674223630839350814877821146971451562642183972324519725639392618648161829774385324106434925254168626435227043137238046625985568603693929750779400699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880522350944434658274022582905129503049799614016607725564487461462709786889732567210192923009824547654380086437400109757236660924137231868007744762686294526391724897026767456792734869542632962933077993830606951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360404261172499890930640509531999646107199705169382815884249161492363960011138453259171654027649547661729565903127916495173602942136281872645926776782768960296649722476337423458853255432357319176321653972435014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423679587670566860802659482952325594202921026887529115436922289471789836330628408977303931369921911471481628943832342429101443255465123776429921208276392973771594064139740520923053096407841631655435542402370608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516592197145167836743551290845111362955595308758670837780019199618165568310045570228278919161302403618351641223162709045429397967412823508433094522021606266842689197180814965483076922146809272437721832739709295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854797979744559229982135300293155312717617221863197089822353116106940684881575528948162082091816672481312890810462376990701322935328445008140894151893110987965407214618275748055858024353816151391877200444585065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159468111481647264547761763497871308668875695297626030316668412146343026244079468697828598741839503171394290013559087722557705373858205488953169601806863232587915107058893271685942207156076389078597607765508430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267268063637453759806741647944848149738923875472845934387527928676644327256479556156983137246251045428885007334895130250436750092419290343543601085669208294261850388397292138035920978526334813384995927253013258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683222861861952982764025772256605724744655934032528658160143865185373616114163075572970379994466511411405407942714753778111142551339728349611528753303886443281608116519009719605585040319934565279822223428072991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506801203170391350760070019492084836887963851424058353860689680377544207064271651941908844817749095380525810448247391349962282964378356130937457114761509358959457926535184445824407348448910093955756022910560624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077282358517313619370779490857099847401336685002084129819112235959696822259645458832143393571194834778926834588974007603069394540213572747663428486665759667909377976467681630158488167706460389706583275923630814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420840576180389037755660267923579426458250463428582640582466470413641994747054661183354387910763314524200053780899955034741739824797089632306577880661508788209327159575654484261688320589402879672117198053728362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103548807955825825328000037407243165059153059069416552440264422265534657082709714384284185626503226274931962958902475416534576128240935354062701440070911482095483336493865766285662502730215442597984538294819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880120337650092064772911586849770591281425393646332561493813809881934729589219122373029584341575051021773876002742570067130721327155850271832631656732297416556993878969323828886666047534639873633285056162548773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179754608682099390454206571222320193765629382978088618030619528493132084967387233260394748697307938567850075940939478674254988202420415470667198240680737708036607512546417371045935695061956103385552732209810939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065198873444896624586286251522253842901560874089954342176951754103353363403734750381964569616208605048641414584922244531855693921046091709499351230970681243367449929819627438739313209704016695375731733639240662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425731481597071163454090918423175198274427763779402582949213724616142441229924935894614340088093891446700320346521898372728974239743797153198307296124285026965615884663944840556777668605819505314833709768685171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421313222560288183751881800277819930167409986441062719982527455695968061642301490583712942032835260868134658206866112088199942560871923959865755990688479447989572847189711576011266352332118719974665840035802181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189394637653897423395944478094125964467938810595401770617103493179060102858481794286927768025160634698186487615862337015251602363718178799903437959551150865145402587972642320057250444419433171201374682541907085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906406936381641534693733580413486216823628124855196282073725171164471004843392677129047095449821771245997353794989592501819266700991923198151396872039240781317332882274061834899368915962588277943418125978223746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379421261127386469773435298406141202933574769854283798507314230296086006458390203266832971066474859280280706222894119846852371184628817825233780181757362738656338576525114589769142517386579768133455331259610892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692586332447535240023579514208088609935236904979271649529733073121762702277582805843309927781993804392172681117659365167746348586811523913603817239938043619137087041783245836870732687927591512421327930692493680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917714693715998839338365967633328550845214487173498729828022872245972111003370678851957086364693267471590612320181128619220703781668982540615318307653843983956690719804851395299403331186528088123217077735132700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118694779020864787750881187224477634397287600533491197235765406868201936808677188641543680800990685123604632696099408509903969483621715707186981568085994319275507836176310635228624435829757772397161712443900078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396691786508532861602277977618284482128672946293714911091163510449320107800723707449634925691218904931357361767273707579489881987081480329456080270142457402799289156950749771877632590121855832116833245638324635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490500908073608133007772880591762113407812702207157721799184691999647647655001009776601727964696655224452669933769931290031683521179052832728749544751298134025062913810954966857283877952905044288966151554228237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124993708570349600679768563369686476720810794013433268992292032107971528543223093687838982497846997755897775841621288966611830971893956180558988873478822385862983606148281970638853766387023699719056887914200150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493379617118032804557079693217083088711762591995943564413971495282622098711793930564122549381874381430808472755308389172693462948996786375493611546243336309926769946870192230881483903481460666095445247038837612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741107358603022530576982049946002145986397578505832139101615820893810253664043283856221560504818745659654507487713704550258145886878709415841423636958253905004410260672794345106150247722806223509663315736125142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146208476297265257464268723386362315313553556816636051903571895244664237586619804114480252199013025958934999070183464431270680599004325613871121045068905575067907676256305038426262251372906522565494265482732134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864367259174115570165529248420631521873791595246448319525159806339460374218673502419803903429172882058569352678665815820119587606982523964929234891467944308478657497450836696232960790189307962445874843725174922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307089431687496491257167276344430305543587943967279839160550213514833324054482959124012187831340304592944162129275049984501670946484953440915247183778255760029397942501489342146338675883458963870261127297794818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782992697952507621176604162749698363594996032434957912103000462192014621172228858441330174290915199745617412214254815101274882630094697483512300721702238025163626542457316682915474442181002777612760729789236825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079342126285808524547143180977676372136458404335992767255515876687292681898646645773718156713727127327069174460768370230278792424382140383043987812547006213796556007441290647108353130420289291215214634522567535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223887456234496451599074979209945903431392149406798483027225457243051435304549078550468575655985031418630848348650105751244928756718289912764572460725925529643384645472945207641184438179028342584640929845681217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780347612045865179866632782748015063649022752319205745215355728802481958656569366630546997062951144220612555045686914803274486028172682810274248864026160189341813654088170275190363279822038270382089835124557790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796504435251204222146561436472201498942002143834420124097014662363438582726929610862525525118921290714836045667955951686533053105451019783216574176268285593469187149247242547912327152909308767435328387505631625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124847808174876622182715157013569546601451452768614882194513411059801959086376897851029047454766574382151811345102502465128213078825731151825135732082734220695504162056314244492977578541810479961944429363946697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380018901857712373933385189115176152917903357035783597959554448978594989542466471543277067082726518943783794806403342214337724047867869406306620720565027737002585237439345579494371757594822239484821309090539231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898478007785474006909831594109288735871895339473582884735120247775144152864143330152376020257165466393135151695802886647315383404234437057963764866980429174989729433098371512156861929654197679087543590065885191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813573843886039356754812673163834632608152226774336103425627990445807102437290860556394198440975135534819368989443858562953654998625886048571349208874795326091097703034650129404022860283613342235054786831175310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351523592785897555315812735391683028019688722025518660905434784145591634664587131734675240423205137846651454848521082743372800134867245068256794125326197616598876523966888739252407998493528141270966542050697694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370232670697644702976026046981576139529220964311841219908124432974534969714035525042861389842059873557626554353472123109964180755739430498475835897786753408277752559453469072029492901386136911719381317360164647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651531837930374483071056491908637692464303925333281823210265162984382479889408161531526098178358205420475757423919079066108906172633363527535883672852532356699956862701830812167405280180002553689929336938678811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847599417790724890998839946581298870509883672688417262456006546811448063717429508458798293125338228957064263555895195747921004748780099067471349081771165970278740048485584618443621880455975536139781877110016001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285557042048740358073801752241601053644920727003135873627446547077793526648446408067183202372794201434472347416804982143532190661854299254690278390239469367565855047152011417500088637443752809863355356663053144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068742527132102089342043068644265621908898010268788167758633391987936068177968001520738645811186433222300276066097923728491881652219262768209018854780389443560320424330725687346061737023245268043661758961997444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819603268412053872503967733874100943023310659498597575628944088749450232447104514115759283854319043656099794417786945650590867372794050181035891330078022518367047129478583932589452033737115409652517261432458213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313374188261577753944998175824449373817062049505167229424285374716677617880644347567422409659208038034162784725694268290229252125238485853373479136715924694997360835010090841599916137804841580776617930919159471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446910055451753162806533052264007677708933108986747592363114249211964737983859542557785447923057506806386126902090132506307939519222133860918595065125949662111567524770317261323632703634237172046692361752729643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935295307642131187963032500338498464286036340724983128555939809627486824431957818590388875500902591367550437589147202605836213776664200909010705930533871909593483383302999128166144933023488324286278094503744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698844047590191734774146649892635236134717021650665605904732803649682439836851481673729696986157231072880503086554205465345998321799681376938521879386471374152993484829918808957757606697549607425734899720499944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192217295783844480015460029895050118238964630978560709107880102649379376565094718793225833884460889554615294626640019608389113091285689074952441099295591850870862987749246293509843054163189206518901022108368738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405009578634649107893595827727866007415601127758927156974669185672088046158595689739292346460865182597348098762780327357831228242397149180793499521896489149874891195446601846485979393343279816952173481047300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095357769028928132730950373344137444842404965267264912307457602800339029746726007190696517893056846085704862419219218955295012064993829790452218907115449969937914434089777511702614082584014441535739125752687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656418887114956390547794276858725041127991197852527863555532605490775416372818787942166756748578561416230433638240765037880156019880957723804879880877686818853155071552135675458248621074536528904229917221564124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751799294529013819672487642943530349403840454890206908114517035801938191590053992538549904281164432095981042972560098939829781428018158679033616012883408918242656076965727547631996722453307756635651498892403328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845628669479813650313566094452938685876216472384194726675264827978036461664616546009384320096386651058793835840874963614197063437324407440617596395040543023084204531168926186905477455123081429286713145478724936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135103373594160579869350944593076459253643501294918340746568221068024329544721198860420889704487725978522293551441435958666171084057619129648024968957296336190810647342929158012492334159507279086087473472977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947956217339092242356878719544888707655404175386489494700125053265954906591158579312704816593456876477106138345165728635656730814481072241362520297715123011521636643617555415377731353126073673845116106084151358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425542996293875484175196399791206714877105669967322253891393223401564458501503835897166317796965033760872633416256651521685707737530402247944039875456930997611847595036302112888839234495926700379042225710280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444517296016471890156412069943099861693668518983340105486629594899465690353605541570293708695036832258132391740011335789122838643818662142763911201676285091701580132394079716586787519933592260677409731015117422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083013854701146917863353802341074177249771296949823893347460978146663308890623941931970797684886220394489665218553085537196766750963598805177974726179303269128318267486205780926525652903428019088270590140546637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050424819094808467898760038276692181719086769660182978203559920718977804292361836630667945726051889605382347287593282301195158655518017828313356583098613731652593503080582396255908286572921386547219577931224335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301014542987511382244821367352673721070466677797424225083858464887294909600521861477477151996602465522606962127062085416878723951599782686120792232886495599471294392000996760846261445296688181911180944889919558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474939898252164131398331629215911678786311490350370804672911346756645736776031670447118722869777749372049841155253422836893646994865992816389029333329596705023331063186454715946198921174696044074793011211416649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800241979283614688616696872940673265794485514121029331647678050432030238929162094969940946268112688477619419298887283020453254835559564561049750752610524425580938627342063589277682844228129581464734736707362255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945282238326814839805199707655926889831544715769511831555106187300676856804057123078324335686278130316986843408552081541485255677208828951940358785837202454478168634608411970360599469204205022389505099905474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091226635606839627244308404652362865284232381423499086766091580811529985673188270001310938215761913296593145799781199823426305914119833894125626021521474556185978394081691455551300017513102083825563173616215459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986609139765363120503485519687014261642737394425538704104093401178690284831732444669643839274132175880980004949886150245568393213699722603951315999095278370145480127595279256570668760339430121291197850593657439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313491340775627556205877748079843945811949518820071320525940334421340012436887461101510266689010672516105842324526485513982392400435721956683073657863463628471394771876051423987077753537119885446765729346358469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062672244936264350959550337583817195105443116873279605675329829161312575435682524564650081228052263681461159753211991706603643597448082885621932267393686560625429382249006199560775333065246484430727348720887976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105916818188166895595371823995831091589558651551079391105153715928239197272385189345950241777905515151572649757087242876794409731453020409590769173875009613264837074559534153513313449000387528031013378564419114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382300909619759380174752578307961563233626646373083895738467111670927506441574763282421096818667021420776326837552607761110898894496467327753439014910896163618414435140276458122289605060381554653157323103591573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253407824746509725002722414526033508279170509524408937573333123198203021541635078677826550932171378171231371611421231812440806330981536074376395026542557472387777479516037076025486348948281530335202194134646696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770393898348715498840132387691533308860839615203879265983426272431774927686269635413106846562448434931165089668748446934710340534822954844042494454802901500871209116791765860652787248125797753474788031668900351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022857815556753370517961433593548312607199002585111086675429079991703537006064368388657603432842134674936328479813459950952445941366688588636535801656439672455889752138057636159021484215833508687176912138457600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691487411272220989011476728779478953951733778941126562046748007712938053458407655616163671403281364506738962178520907892224643916798604380401984876059535757297848080536465417964743416320801881522629972791753618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928232426014000725989950970512646811985138070288116929747036513882781618018114314687279332331454315102504802737697359069296971888893454531535369515189875968892467578877943475069709594838918709199985678213907843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236017065484741044827168499151197376191570800687543188967229491535191956193124787701048836490034307122021693271644873789074869716889055669789349557482685994538815934237990106692455380866035693093474851627199700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448513829662277069771018679726274836234505524986843346217582535199489358389264000821604257858150101486886919441391356686968831445986211992334972258493374105532462372231784115404225791978377626057249768611808885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651579966325538347945076610328968486987628172465341810383001694345217588085496074784900756730397047497994124351261842137150277561668273690261688150889213493507321826932280660518231576305416072303671389874837793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839502282439875286051051135181419197379569469363868127453165281063503834682835738440551422934800799366821080449360686216460067663448303192249589315595404581694972413680574963656793307919636715256980718618747311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172901190857403250338545222354033759894400897932960374120546035438418200763258809362869789359558085094975650679953503345837068005723967268132946214075401312828636882307453773754966448767066237058674528560526287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680256945592260893704379680883059217354990280818723942350083166725862989891886521707048580918439451741645600902259738411457762210305768869092600196199756364983572315537116480078041903407349958308441455122942817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895699623496283549272734508268912027147525704270506111845946471828532054542723345159408698624119906327074618266795601170127525835086473884920460278571285023478467533903131878629664955207064550768958438391867679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359216089478140468185331471060954683369162184806558707134105519361745103710159921613619950970865013778053389759398836693787395482278968333613816287002510939802307692164016669599177393122483908264479128099857806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928750040651580719202828052992244416273543223825649525174246715774826896121618525639989365694450558351032818566413199762669743911116778094871793696573690376143192238347665546373088851777088449683238058186610490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705373441390389323484250318168830269138738845884794203557989165117728792068933863168270043214700842467578529416604696403753841191237643274386841834063376908656334246919941284466004865121778043276898551840227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576312670276152597776992561643721030108499313035437189899247009395752824298729692241071111800967264157307261862392713715782806114143002017111426482584889272072257212203277130099829499920651648922455188366142159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365465767781209844862542039608301127767452831340676229436884135422093949607182598326001355753099690969163734966559745037380554178792938203007569843076695439031187270674422084002598679309241436629052273054873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005207644455852172346692659704934706045532756296067906066323102672442059559496173835522058814667667226152539099092237347001406561397500633569448750968771520848323518979421232259292010069507200894275409808572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311787891831559922775024846159670664664052848809211928532569954957327013366289102018529597151020987318184639442800526951909043300223556760197787053090664264844723116541768542221191674862350821405552416336285619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242828047303931963919665686795097812119450371518494839553461857076075329697620604212644505057272373623975657440000518850643825547281839696475595398026300097329759096766811250192035086291396430856380268780542422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197229799382327922503439232071557065563693152921882935546190236507169076916658534114162027868814520633343518244458692779598046627970127434881999983671416159300403854909347712321623085392496688136772265723665048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468390735987427441902527429805800573784246772140507586893275782389649330295393167543655826368293342278667996908620188089559616889819483366568308504888361764603121668763086594919836752609718937985086429615427801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188058153183483885467009000362390165675090985197438260891762970517516264463210468224004535486063995436349987617932954392450932753221167185125536171072025658333543526968008511489632677184139489710157968223712323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425640823532499590528093660801770815480297746804698730184428172248913336690764257349831495301549179718603868488641641366820315278415073016038287609047855070467970510297237624004973267965404437574346149263092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542479612249799416192380808171869561768335559308203432917111861194066142459302341685892832540228112237514487838380437533386005245983771521980857484740911596560510126102135739087758744852230707278675102693405952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653538779006847964816115461477425676643466678616571432139560580510685249293020348631118769790675737306130865804980539962498308851629744832342091870932486556631685998882180763426336180380330937080685655211630835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764044674384081792139852471765606453271666305344360658788502002162008322243397547438846569080848229761095989093615129181432469419017754297201682602926069362867759394413039980700485624722707461638170802726093244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923406580320289778734716023174722746080557162944886163769004988028768178344620062203271019135123357703649008084555442557682671091481559673655385825943822195135801563771197167936702062224568634854690598778034658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858342924088679140936814423285879009223052915279991590500906519247441417091004770849988903033856339419441048643921902022566287739846266971296286873757221618817127821235633490471549947075886804059463249806132450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899330157066419524016404802598619582946661146570878969931266619486819119516889978571382608897201650221151500004591675918314137952842924016263075906928102591504769068722721155458369984724422211012783008421494898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466677440735588962117649026388773046312288150082414864035251260700750590426855154587308199448361425175009691988121471776942905584636475578159388806623954201893749084032275102063489232830934102823789408898953172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570618687637859548021488100672071140270517244681807607601299422257578378515262372980443754897446037591002939914877675347724241123099838146911879572544474496042009487586321049675622617109806570375457977845287555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135203492355031032263242244961884867197753558031652147106199584104062211908359669078979633808121363989284373107431582309352969442335189333013437082432643853278990826149765002466223360134797174646420807983695465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520487386269472797768681984124497130143674446177383603784505886773104155213802955114829413819681116530162355989101477594807594117715701165086921854114710049853076615445032636243434205052785612868371178869862422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825408921010246158353618988556156795455594341539377450291006612155870640166529816814549150487091045363602336962679007420452451078747671110858160388335049073019845459657543115162722501328826413273272004586475040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809900996619418551265914031244826821505050968211722386212311526523007131658654273609247852137350152630873645042097086869752775065195387346837523167170317938647078333812547030567421606759571812448172415490067795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923392172716067232378375966828065587790533662110909733434199797844334852653243507225336039871946098706430167889540908433831832738009554905680850927913218961619966362620096226963711045923058598579332139457181218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637676159553914381141064107128036641827384857021316647667552407500949113768318919687594594576779755050543591395884768627920441607389943866059704875573603207618939929078473257012189386351243450402561115311061598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081476678966093634642719375556300958026571667406069670450700559764523975309356692672134756563223105217097972678820117567338442025858585630995827722376701242619501402141241517017062574823919937573153980565184474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186573558394491847903362635015543240087944455288584149451156409427092240658840581570274699062826291235403802457997574932701823914476262867197280067415106461578426087089210088433757773968560088108136928575650801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693518228333021346613369327916859503079924691147833251308207669101517857971695866018579272996719400552366904988057652288340540382957232949566661061816310978922639940730115700245762837477357630818379816163811907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785588140372986508381751163266745475940834529696709262816998084488901044363992941713355049172185304441361275537274043801966167062333829738024049062982586095139350274958987505280720673183786473024891305790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656032562701524693947009851471160099408912835194756827483296722721766829934944453406790736552541717488658390103931928741333687055929138002772731477548697755411984013889604528855416461552959673062532883041185550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785980108937955654308759455387321323500760300773010791789640837991887086196320867905115889137412620483854115784882203959235943327045245914114735078054550403358190338470648101424868919725638116863193321649762981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691197831672918442579257575500403074904666422709066432242851324544080760503099725830217902579218216908237794388348086565451658032249266413962473396051152475958393563660744382993667731189712438143450714426349066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405371480600202881411947914174210964506313055942410056398778030768315454955071573005820147925159590460246611517839367856016125324062752420437119250613796485089198190958777058099249084208560010388602394315570640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794756379260766087148325864793093194260650376503122078960597372119426458074333932294645621715299286987757237442174524351059370152244869761304829777561255990175145475954309572978672740072177410442876241952705751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498946051202315286273269232409802703440393572135190345840288779882338142266098933184966747889266988742745147726958495465807735894966320431968422729390540234206993659346551759464401935696808875736513565527378275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780464717594243236240820479795837934985204559679902540515940494547744176083957797368673769058556479182794887136785629764703619719277273687581742206193421215839221471693970525072478316583686909212066060297781442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213244936269857074070471305843482632931884544051058661940375587325025731566527539290215236220741530144657593072275088832670637058214884319615653104189017912554845787463405381875056140442314611978451309705654536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591543595496718901355903146969137362240776144310312264860376479193926771749354075341625710255887112283009804553940333704873282358839765090952167265647472580205480906398927909594975654229061846067947625812914780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421177091338849728156826975564830840913326336717247725008190383325739818737436603642934168154160852874645872556535076211507308850688034569682329153540606927242413612638349624302522273482207667432824462519534381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252077400377550133609358614163704490921998912980817235962029538477316594515932545751276218265882696502308327487795212641617601548390384586984583193711720936819908328893259160168315237898417509554214565735424477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230522939043192083470040859590624775869267390038385675195963571883814773408191367110130507853555897601972413186887351769388896092097081199608639323761143676107035675675195450985667726092830783033338494789630261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844709902389209087028258677599793290024068740412895878180015512623850669835207610152581029222069185058987978076103175274405860231492711148538125250221206590865901782025878010422474264403050814934008893553699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230406118813478986495017912039521392725893518850322747972830455537783064856392215254818172332080667252766596431620541805944807093733762738519177931869947302459081165317084647784897935244335720380614698700923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472018538357834377022350425081424571284375657147968931036341808937329972201918567752838733601339441772638156220284901596044742284106914681577796601935784853607566769164334614029548215017627807940265327540169883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816818068792348394235790283046532570909969893392931956859422151042753161377858913302623839957249246256520923809821631002200993851783878629128475464749973808460988491571783874044619813744839068734059128423831399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575225879819732015437084932129176882040450744949109305178697056711770114196561695487469569955457946649024598805818205226782805544006305517162010917064549665772809123128273037117934488881927575250994256805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764927719760756163989992555884482471253975444199575287553381607523828907495794340847840981905049954722349176780899897355542816911986602910505481900466341371555736993081687879278573666964628266282678449837678112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125168538532935334055740695466163939922312566237332891308244660515960756818641377290495515788532889906154123437813616994804639083110947354161918944252795610239155036306202464858209675195205668630960889827424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299577005685216547395630934014599507090684943999526109950370114911485835658403569443924401813758729506682050712955420991850876507111812723830525509427097018083673324604796439163711962481671287816880866722863275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221614598530848070143271133232795589627033533113301913893098742633572074810144260604122194998739520982043140940011739601500116374649373933374250093596798354959808168174942641161758900297445379024645100115732568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594442368068407010904147914080743724325375420452945492320548854094472777330867728957284483519930624062333601489465701029537276931923980079137424612898806209404251071821687003541827178246935885289693683871233950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276504309872213025329208062441013565190192429768319418422479532304887222761999981305934343540963408734149400983611379929010404902165198001696534510509320118652889500134985548157976486919975355400199623921830371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670277906597782558864298724579515518278895492937913618643354949560747960629939433289895607101850074129740279027598329853445366547373825443050649218755849054725366313745370776589299887545318170758033901446976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832397201173367271437591403573249742190766283951872620948773642289035555070995680644813853912139494407699817657122176758776977413747693008038530924147025926730972434251473897943330822070919844429634936827345559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300490195865656152338506601086085247051259251072368903914426044804191068856917115605546765577541313378467343572819135579215212524416342672879351457987262360684768794244924543295937593225680382412430804044151703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930422812537128881240638371919682513155064045865821220270334452515002455569718520449427126617557097790765220163140992434562496582346327419996696591909630315077216229597379413304490691235466289997678706396442754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714352252320882493548326405825443322899338818143324607762021192763535560554018124664011806449074865679249304575303054063589985810364305066917883604463376007252105930721019229224189532238291589093412822875051098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892471602532229369731322493799729280059926755672479757909534963414170020386634196145344182859054952805340999776308793433997597891056860413390126065078612560823204380454544863133251066372391013324302318546652650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825763569046940203693882744668184013998417739780380225429149259195749277317837957450107291618969993288313754198076726491800130643899054963744840691458284642612420496167874919002870799697918853412624810879505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824968770668087190298872341728952793641870640694846398010895643153523342290031479810166843136947919614720609730858013615070551665133391443324485869469012049247732557182305818857471699146360318779330138475975986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899852004061054006583425034516346856303094050978983625277393412354469101293626170198997139567103939774531009630549010544836570216719918722034635756363824411161709378889385493935561250090479363717154224080610343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556218883274107109765306341681297933459346742756707244134694314516216704733767358268531719605428171285887083015931604884149219032436305805033072196601828090094043271791799057699323544388105032406749186069157840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056149010369686585620638108841621125072437468721892420926302653347648510064882401875311077523879905191475130170115551259365095027766386560475993267772695534780632704930394893489795980911778925653744326543937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074999018383924962308016797133423606997570874906266593733463493311747238915673444128676776285007328674289347429843541691406948981446418541344524728510222660007961380960752701040772759689266151674443660665791711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783103409232516679305885809444971780201240607532058426904533209973279358065620778914455124440482552693035330351335901481444516470171740967805413422095299180906029126071568339276616892674456115532092800093355234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476416812224319790057403767520411314593569082948636502886651386671870984019126520871938214610496291771605611241326229847291819735019232646934760673591792047346019502146850204222725499060500390527173983088239346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539943726433777117552486333465468661747102947425707471145240840693574593305810664791058725770870394121595834972080143473202166732002959217783114654794156763235809015934498393436031139470196023680643647101552654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900666864165635632999002589124253674659874275784244531350568116333665037981361610334287691399779093956537587469917820529512660654358748024953105462079082869238253173487093488509220298997492167707593046651158113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473420060161594458175927648783175100615405715334080277700173393486915972544835849957031169089050234790041826961127743891011136824983651124352217329412770603813026341816523575148350077986826106893578108357868111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200737043520451962130066826186389711245753979831674835802866090243753365970379553017428601709822852543466282260502978228192296797495070684694701411147182712377179454395424754558231763707200209395248030550248615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475632881577185877829735370548456218406166516380521163355359561571365548830402308390484990534640227536350532213126285798474887120879742391971298065157156225145357376229649699578516189472586019304801887884140770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505099175082590601623035608541002615065995829409418822317117668561034310940901519556035941976295271519144654657011462735647603416640733553010784066121706880487767658296034459262386475855747734122855909945512619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170751372587973508902883565123730751402162131170264048251331975042822098951384552813626884177326700882525431724357988989275269871603988463330764027410207254286075391463205633419005178016954816417949317348878122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044510938252578802766481442579095548425763256667686186591270514838980441597550202022308442316481714578201023087613689400621715918636966475668011505893950691794861793881106913573911192911947645716384243985067676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014621259261823243292023050487397355510388061839630338392022445021877806341801390292508001654765599060390880691771852440750963515195819308548534943637526931428347260128632155695589347590375217333956986053558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974099445803948437171223780859161062547291289418501433733201139419237769927284987921679570485720848262117895374509959016057319145103301592195047799861639973513634301812707663619625642182961355714741419682519778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085949347514957536351908366451038348117838304020087249543294359801839909611614425208081024615483437721590074746546970789568255917810215356444060139689315984451593321201982737877807460527984806318853393592553264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152106960803373114792754504691807086633068304717712769938884349752036150838640309236770796659624074665303205885579543535898594777542084658544662131174173213638193761117452671984537710736595659498165968875953527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235562634578787478523448239984694378073980038821035519714677936743948439795042261555530639372957759761213908282947761609069866159952443474072082548727474163790541203204376326497675788394491159485261755081482364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721974852985490650286693853139002780062228105465949194965767734087173852622258531958476574101365001688354835623699235440122359693600605122970484808670655982833625461624988840580805683874768059241672148992546676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636382118343620277464608717645601823692049975214261411194950914136593993959888496873253905456168986309629627745569315962711129138906875337142858168326558229153167341288902773433554934478868355341061282300218466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241074116285556088741764834982071420906963904058285391826216228998268695975949380590488575368152351745149646614269658795620199766438100506150418006870765847045347714700596330723357790794376706421196119205824254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865059340714840086040303385526382246381589158118363359664373818562104058201328165698540316735563816301968056458734803967516057164490401683827820160310032606803266839604685589812913403117536801291255768900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462960672210621607461237715153711868850400371478628178842646139058053647502894690723928909472263625662125720569197736932903139341358756978228791242833507250272859563234780250407896120197892164697822879124283350725027285956323478025040789612019789216469782287912428335072502728595632347802504078961201978921641323874369299169139774347271497800996496729789539148727048958122750145899044623890586964294927230354129335323876189211564588764429713638978164132213843945580346265579131440291412501168851998922870799882033327458850878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948191514649529198853619766896498777534700409893333797271594905193918030312440938121636064272059749937430095796162204706746117408573410974428749024072224071920084911858181518124276338523114088091933869905247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621201603586459098001214611081297486526766493775485550163800936391440387470440680741730711149120395595564763786368725212586641996518155272682610249104716189727921996372881405772954371894830012920612558250088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374248682532213362019148473697626755507600478474750713026331527914424648458310542617927325595978995021636498056801672170239863642215138491367894696651895996369818952892920910915814558041583029638779178693541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046080519291815736507140605213243665711748651865109586655317669933181738303448325237239280960676905236851464558272384358920906669573835462780112429104142056474580713944479048166588098158783472998391031027522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600759370662369931528510617800162228001306895034828243805988974280780978633732375367387515639962500202688917156087205681980381321592713346498607978324698826325052172467732321585052767727690807395180206332392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689426009267552040653336553951459594430336472986972522461302873983497304830196186945556575297910677872775472113472308106665122026618370236590083531181275297824104741768120054732854088244838854668374142336505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068254965253831583532577307988741429846387393058843241116758545328754899971955023003383521326423565271107017507937488068307856033254146019433209677063749357415395330037478839909900702531462965980415264558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822506753456264515252977403298927537561691817485375550733716370480511310820927684935994530695581210082285314541817055339623762767685236462658936773733428035587857812808211157430619791553712435643547688811631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112801986210384988301577437087384108280801447372876668190323709674289419709340243364458161318074772282133775375992468949488568872590487141814602376469599508013866043470594351749860090523183122013945918488907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639209469638005567006340478765610370824098048678842658505599647762752933451721794819545507384938113304238594644463901683723440199071880860774745846502332455205724897116515037354612483953355037071663354695583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850083632859062863381325773471767970860082863657847710142436557087371372940575360685199619901423261535191218781832403826601040993227680387025182826899050139287494337547628268055926443806446358529156983797510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108050107591342574231162743886126499208689264393552121508479061673596495341792033572993192298700945731199911697842268853665105393723073414833627765946108202750720135484799053771977521102080214881391072844348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420016078368342775492638478125557268114790797901786907065870634749514416252532134659135416115937735427112748784426401032091386953545141751045683594010162267754683709086779176383299513414680468895693528680453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462601661707365201502412509413289171747243577279364230528420491538431367186886237867006886699026954982422348265355688667764379757582173536817241785261396212923528146510190330402029598086319943328122202989858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620284920369110801300451065828997688939862230200298730202666823959834337214834359411418680094410242394805971295162152859580318258362458840738919247171307562713626974288333595200543374022971689775651438500239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224733309128902329783915701654709899025909633775625832771152197699012720654276736343144359633866983789906914273142987712102809813540389905181965902575287171101772553598109188971805969066534622525599610871060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878696566364760387833095845869521297413602123039262307275831620171532709809176029470213889754474404764535418138440232395192710500836541126144987477629576646131529273040826246467017087921767316215590235210339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184371401132639953490553916092843649937862708149230848515856910453657203421411183827241925996098440307151328839084613953670714121052722050610253405101940294074975957452717492953907938586063863227169758830913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655428426022137905886102004188339197317863254722606967863498146897954811292456491956275748589910851167660235201086703572062410419111398965080563101776254467899402821164892062993099395041626919363285250565907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310134022518229251811450745324961179827809809090405986688873946543453374152928352732068452037422867061801875774419308457568459008304866895218185054620583640072765206482316024479229457650350271610240236048276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077337600915488505485437349191072444887826850797672742474988775037169509964568506621052359813315597357709655906404999570137621979292143842319021934015133733714638856997560257526096919920416796982308783513389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534202742021940010898234916321433410966455236456415744254761628061499486226281979471209953326569288357570768742314825654762139665761587018860883087352063421381805508095387106264331097921834012391015587323449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163770669883912653893258830090785933097325279803007139032546111667906126220914849586424631374604742928512122584090588471531943843113310747680446329529101441178853360841472418307882287955388926542866644843467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993445334363159572110004778061319562566494190266100292052756670249815648374796640972093861428742821806717729444668642296989806010450055271820474193533036594764842861974188173599121091811051783171735572336204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842776790776195747512520272576345924105999269154185950946053770947153664423368160345377494478203803147994524854190241582254730780105109221383043888730097415958976243928516827241735402495335256497883617447651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831585990321764218085761179589830507631045793941516754013599164596088966112035636072409926071387687035353083602313716182758794943707880262354513499947100575161658408314018141609641484855569557304840323932205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565470672315031304636084548358457214462467208837762651946049230729108575517180870401192629859967437399667039842997856292449157836794560501938232289199784202291438461928771033981179532791964008706484999927364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607568110387948042645886919236548593033626064402769482209740683542342439780194853171920260633603021898499877395705143192427941574283714669171775653622153838039556125883362532556198988813839413151905940783614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856058119852043609907487862010633095050398949713531747581834943611833358525756392124646558514617733143009987470829349366305014653167457492149127422582208884946092094232114334628251716078318242748223680631197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936581773539678475775385919860590770257149851997929188620717554066504414367406195975690246107524513634966072493582493815286236865926413923632758445954235165302660337023066455584086230656244569711087919783006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651497009872703284799059993478928185130602369007493095737937181386951682139546812959146498623414918326207550263876824895095674867632026469345517551029281824983911964679091823935241871555252286326831894208769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369265243691936406940486516075632836894857192461337719895892533652652570482026720647698022098371415108748082727121455265654004946322613711755652255785578543862048439727451281124698930395385132755720873858613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678326072883851651589828190598366244240984123976754338199564138877339025561910404340709254058733122719515004390733257007402291089271063985702642339450723016625621780326505250808879203903983023905630409308301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925518417169030129907212012965013335062700714227663549741111999219819664698709566640066532421003947145178129100001780324540645368945014739497490056690622425714606805692549462264794670488663628935046253209784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253396100728725746329776748022624482511578553027500586014154190875372211315288767244349548893937126811823576507975737559186226095475879390068550537922635207130175199884858141373912082390955291049480886320773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989298239984803314307134208898676864918317664827645516485097831831275719666859409654673991686667380311428772560547672156667644589756821784995803697938800350918275358548373510238035096603225525565991415554441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644354019814710729774780115502323050776586429235572979795505513976023219507014587792644147392121187155759311788108567349467436775790869700486860076104855396740093966826692529948537691346709983406583106232213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212390575467578961132002146388875142770428485161410379085362672854329928261900912400426930018423089741947233718827707653645996344376750730597244890946843733502536860175083172039515236001787907322728885243637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721245414573378488230382467191665951105174632431279031560874148860708155483110213254013356868540558834310188708893876139373250234088079659382014804830316448112317620154024345025897217767005259876857529110799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874948829242061696496543089442346341753064626206632041270524790465222259474852629882180166510377391520956925717676051391512907908330630891313846707678071360829899189944905399843274940243889710601762751648654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605835065216371814375812035946389801353857890087538637799944252751397164285764558538815095998654259961111212635252183537375408938382994071476719479556565333810335609209165135879604317564521490021087374521940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642645711070748530076249802206736383779844598841477515071622932192031026050055150907697894319437834821122313171976968730832874683832939868019319165370266382003482464988882800995308021917638041975946273043423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459837143013400320349765295216438577834202480497460481356556278767001411676453276570915946987857471095170775617589719547014691405289876238634466607521691840515292037064341671434458101488124590410883667693696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157872176047256284368744402999903490723523364779561482607275430475073383579416952085411858141421163366331884361393046086404438120305008737474074303519812587955651210154379618540181768351639553142978892109793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368933828748180808311663214088601896279333796917967023892600395108849232222624879146995246944822132220716228187633754117440717644082563597774910049844113158664565521693479469938534589527648029861584022640999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905244379416476766531363703816495568807841719706669088818711189296355409708944935083808672087408738589167828057846463873013356329005608175565705186898351828853855818941876184643188554188353220558655149196084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864821959627958273728438493021076517011141209712718951367781133634522511943256406092909203989203031142869311029961628971574165135312265097656638725415021881894576960633826540252017462748433137865936683535892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400316307779313938878812426373994576617350578045486470971336561226910545268032335170946578223513263471197754156648001216476189153839445438270741357110988027382524358192945270638724302898388786237397269948101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538332918569261160013609052698074850778808097199220790549384644912998116044510512482015768134230369758459793135250764991726718978359204624413558353968020439011298808208487927059939845208151455527716045554509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347642256640078552027123596498418147809185247540517829859835871945090092645620322145679360032009803658914036592480297059704238934014178494089834058894208281375410845327194765940157849180879884127867128834697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880899788249617457143265389593198919380945373562006977956600732920737598787739533401224262824638117604665529549327760151654443398797796575964213036484953802973362973405409536566027156662095624204018972541002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721028038863079884248647959934426910709807053082895065139289872456094740899115049915932660761263981350418642126839879243828106390190244271673507646240245768175241297734377047211534086168041782949967650685806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973559712252757150876656596645027191717820529388510936944721032791299729978949595372179654148220468484710797133152924225658106596490768857512128315157570089156883907751592339497055571554396120342875806175188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099885315922357683605018587567855736374585771484106340133489759087774905833455397705795352135901682664773827250855655781354887635988320027857706316422404683951616571696563311771164541224971808621652553084508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034544208285371600231136681319091964102873049208500417437038337446281046462094277696378558093427578759878418333403996601935420267148826128194886255395043815153360888198352817494735425296130520588989474529789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362704147497613963842986391528708311459385176684853692245247913397018567966189810070204722123318045419230799439221508991833972212946648542669182478057987878265388133877917479992986271645433393042460911284741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616303273744980446090780906403046763494443155886989737215023060224087689628089967772008295400972862196936979990856286378189206873431243425191257166586084885331322342618432605583673517357559462474494240918913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610298886287149302046792275251671037080716394391237431679286682193444622476572604070545998596828789594818122960996644984189543550512697462222284055821601781563848932415629429410235472447440652982759565085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224784085226233338425720816810073396534603214984320697266393091865149254801370103838705478495805692390809071470146803194411882916774100108676071463670346097016587747938619865572514916032126199719973803490164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701311488545214557527650034001289474274223755834032167742658602941502854059595734178734907098015908582653022046578069213686344182383358550580440690789048769469523016824226895303019503849045740947723785841308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528774632307639477366220502124317111976697554070733311267595581143076643508377661383937418821198728140243019592577233992497745653599173737048234552569017468386181605906850252368717229255820454717814319918580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992477364265588541429930289457142976436732322262923602401555030564320283705186440270320700941330893074078971459341135466306263658728571889770055691796392094089540494967577669166831282615198053868579516388745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291659476574699341543271014074745772892654422996600802191430751632012114712233628868911003141982697620811610237200462099132116432607069198868028640972266780902380740359354214499157461979683557148136771420102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056510619675999908569487775939149115942015050991367741964053191223539274975510275226212593290315929202063227431563163988355989476949127802825984508358367998620353352020685460559216786552835764981566953231585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707412208855744548038615549299960111090089529305615092834665028803983155291889086590281766493385503602113010042614046121856202729086358517057052077500603308295180906193350336573369268872311459864004662237348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565813896692543928611681270286078016492471757947690040713838418710229217335189894076408089714318830892216393659687537987014204003784913012750100361893552864648042380140726687789499470242525139568329366720126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890898964065884653827774882015498940055948650851084658197861933024860833800725503537057526726162627120895748385707810716790396321406114798575892731652066513874141839901415240806942716415312484146575073671621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708504476168704764247062925198421823405671193175977385071213843566161200541291487091099968133185503456755250273948056094553333242616500497427369923689595571203234581644450618398094463681201084189262133146656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438391034187584136241967457994649202221979834593056563692756849359777671093103041411307312539564248638501455500757943604266544947470225968985102663374383018153260704636104120350698291007740247523365758424349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273846254259781523770165393409066396161418136993626227242206373381984306775264803874177190613456070869512882942134188943261411559837419843096506180799248248599557473975865979178350016251247911768205661124568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820705023281591771107908638599432662526833708351622186279069635134610001892728789722396733421122488552537949623348050174564571416968863601005387174928821497469289625347403249065911079477469955016629027142984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588527678672465468225260139414212638002515110525362020285088336811671179131453518274582690793621433828736367147855025406183150742638171351310767393576500651872257966213558484525199814004650496644293694462643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409378894332436367662102057520640498600339476261177306597900717338435086119046672830919191405487618249035409603611171758738428295310712978874130067815729007187202852534737368305268388208851900652888992067114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134317000593894546477780717800755411594479566368752313028096856384976646741642397940380978024006822393043975148776185510146807492444313049368424027979663806970107218594446946675695263158838285262613400278056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619433993760383134891953616522198571734006026268164233315262753256152699866044674282100016307871335675641760570610365397244034349964075523914459700042488278070090182478520476973060681827286895011123040202596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638442370874909562441301959987563891046520966754587766008659039521526930724947593463765524999573981368704682383578222135022751562771743922399554134549014307806588887145132813370761485025768523236382933147428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434027966266307402731316432230471242896578160810904602256804488197247067993494893743915075505173557882736746630113365128062806763873894435107340477854284494581032402153026889267092892734321622288665308079172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766038353195822125838995005317567009552936485078884042900036232460798510809447041187766965698527002242365421484082307424965912899096508885363087254327321514159891816287567811307051625685105581512671359344832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255652816656642813369025930758740440023467313737677792486726102625840368808169386094183043542160512328994311377533910651173174257919038774427555774666030406620099040630426051492029870431846013273895090998152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246070117441657434325499611780691764675964746879791515572781516247306058334526364851289816778469808818991132100393955511186968360232676578194608392777588773560940755982917754280861145433013950045524655124291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259149536037394115496098234431435109320221809709359780329549759598895081104350136062164200304054253525182009155876233217544217588085941929940166160003634391015340094039861381614185296591895827468622176004007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330757727354406667254606385566002002468570446003727540392329608743253281392448927596263699974608198030761215869443681254346476005823451709865886875789643460227054800708379004133051417219265941576156879115019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014500468628214330810028800342379908031603885040608297629418230827838086035227249810236770590604646347730952402490251187179864243391902530458957320390858507871952255017770376521626642185281981740507340026663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778020551144835864447823011547118441835229325114932572698861749122603284020727778843300201824351288952626434850401801176692189400301384623039255957312898153724381695307731589478556460254890123359844526030584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752745873654043686032392568120396815397806203184411751734063549646449468864312900565992397103980260552719134441217649315767012502328215868291339917094347218601990614994727041937223244811365777364784334202259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545591894888707730437495867207924838385743401098250062896166079971094418369987478443956767929238886241602443690271546527600224939349036905471674482965770830739242100152832723379609356923990338824465601298007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499970332980309505730194490517681341165244535932990515291198614709570353745265578742451856888960135130446546702707588099460903301835695366013279171879444954101560343692286480222247044767586960903220968422563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461754830545368993606820580388987724741195238929242163746784562498542798503144932995331585543002766715402629626516695809146078810174714306991744199865847329040165535665857626308050241495588477533489852364672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573602713021329448208976614103780709193655802622181784957122075851190422878000874592867736276332300969043780313708952520766671757271829986143936555118371669223725419466798082166668111039566043933750372807554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791838338588827226166775683455460042038732166503756308540835999973834420318792535151098838338539003290965874054873988529729683799722936601292312307160205509733930936050345903955144350530779986167924716144327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239252966766458754894673447577273356013838273729005393896656592230598571048482774398049720583821115538200989209661369468931771991114747170373374826981059627061291313996060882187721485255788982496057151197409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758699884109287359028743120393437627985164110324412262926311001109691495544503094533576921409803315676548064212577277675625253662101808506368182957928716083982340214720353625982063645520085231280580032671686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237438645179469844576480639489491833438525180428786932632752902447890475937940428598452749922277972100023891121548938382391382872989931731194761739061150447827928769110237647550252257173219481814737063013088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018558649870372897272343345722492789153260922324770228772629642491769808030278236217239379885400503625715548875361008901145686498282437678150512482820550492067614725271465218966300496885795997677522593974060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924195715977601971694902399328727439746588043656593649688016852863977515522475999764941859502680405006409698435113073797110441197918005746465493078021521252981008731406046947356590646892418148391263600007362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525182303891310399263375859652579616496449908909552435508658902553027859907755325901273060023553112413722883395464048657778331615768298615178650924137474237208870130880543952259278853023943092165956490984077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922335095660072754793914016971072318582441279892338820023779406397575365725162501335163672644359159774750611925713016230090937345100474527618016380709677370094376805966714229413589600824755383245974803932060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928671233251337556738716057356380028942990248851218801240568679236189247556048248749553282638731464641642059885385147743343317259129731711974000426498722243810614211032749924136371337547432406296672518156579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642131946178526062604999062547968847458530441305937394727793077535078193557627344106921558940727573628596944966388909215851327061017106149797620538570852812095752763294985766777194759352152421676877868173437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074161787476243110180290133180972231123824004466527025579134333864823384782408364150914263032146655473661759625616966594331206659851276704614504355650567632319272380345140253542128096185364065860659568650090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783894033915299223882332902538885726058492433074205048077496581896610609181058545419793248020379655682803999261459692054638058771364903148774404809112742816548241917457211102449742316156169247547908473075166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556997133757414465046934783022432710038421476879322142485713565646283401032424128263276542081608944807016915495419078899085838997387070670154166653384195835071697145193419203744574382051040777729732736083932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468605036883440776084482397002567762132357213772691392393095925237942205667698370439260789034826737347545283328576599177610125695553501926205517993980215710312414311453023069858987010303589421288523151506444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129918634214765821403830797952738737610527302639241822426415421509064600988318441525643072600146861460116194913024036693824750171418942259202080670774549157595384542378138860870217866424786028682455382570607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005701788311831237419981786872388251010597475120234906541684015733501431783733524819386198287179971086117048195607925864281956197702496700421100095380047388039200472454678730906292796860054268202283888668402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532035287764184783978631665070737509669088361316739147668310680483001761136059412558390261849754766696217285340358592190345237671511643133726006710559414359332135805934319651546323178338090818578233195716802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666669893892482737826454263142720386501175530970761558733454310267608916815162421264870580775063592788200735717780569088816079843345659706100924240360984178262541720215278830719157976674288514505877381337614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048307901722189787611415267584913782767136404814522241700976380245927541667269859014203411158804515183793647076944899216519582332638281683336325513023426351694440084457734264891932074127715509564322610386891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082196809827976707749289849712423880933541449510829425629732782669230041011618064786854216339301274558922324247867491607615769541168830213454217159658460908480197196494872285422924913322695771899106521926823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355862262499468390249780248231061077389080430317290598477045224303210033049575696595575909808971877355132748296339886457187784691064035564489612527351448682310530027781884310676814363488368688151979359194805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074186345010479544484728043228759042785327989258645322429852338633257207854943441007130491816007509571981783809560002874758275571459591214237982410344201199042980008348466798477917366763391675598123307360449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215785638215061003757442106878698175908797231054718785979450934163531730971342755736848046549368460858932795193878054835351838457955127888971075385264812591819795227144673148897830668144129480904387647541720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716999882546853183684501164335422424676631974561346008496308560574537359030332058584604742117198315800728930013561157562071742314893304796447468064963812931642923523581139029669949468001450688385729504988003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696968441265206780502194204287610736288893858850387324568556438816578846280988661820320357823033380099305913007233341323450960259737460520043570998600298145509578462832001513573592546027351596756441636530112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279809129711007700450022775461206617166915591398097656598227169631737132380233081894643812813486645249599544573599602734037495319810341373545859961495498360917612628539530787384570759463293037148822519303817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990520879677994407822530807758169956027111277585448684402760529394514288800290953802848541101226157784149158140774999841496292240198891308317859666915388229009946947450247844902571367356972639792830403286063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322669545383299223940456133606017821411886509292207929496640912160035905115388056492162705446419123651890820653277589199738922293901200268232222369773672330039382172367465305265074391406830947473212603208840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658461138451132306458337250580531679344725994305521750085317786363398194721774384983941664621448550518877066168902788747419777507278594616784819648879238392429701230219526438487691711692941913676453989753022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230787048299803447155070141882053104142668229481600816095024682359788933239467695015594757502235926020424722638494100311367044097453658610308012059308927527610728526394257529284362186377642535427818993064800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964977400488412357566686571614215831108473609139345000273200513079812815702225616906552683303083665638141347007081942216648482210415934349190820405640859522403880037807349261650300231717999314825929118003774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963573145618231904447704954866187160692280303501373595224123316964183487990807480804086899822172755131619587809677521653989830962034894093683856539421196123081021103471051742416434655171920779277138529506026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413066316801746797335097254146260959957881594107278065966542285301608309809482798087779954151330634185197787230301266392253999559413949621100419546078252067442508032881805033938921875652444516995541376477841671637307558479723386593926352240182260803169276708468269071288406191974911765628699969084970730823375647797687484667530526919298507928036681821437679607305087380808301446429759825417007864397304961083418619696619596322018403591635634118435818598205141363191530912517440662404939092451358851907627068893662709905594646893766800692046828363046250164021027437917854480248512861821612512114570003573467406925367903689095025923989154817162254182524520806003906004061554058929077320687309580061749971920364712097884192446667092044497498748240886590526693588948775257516401354367423792014530722023535768345446812068659513932726355927699659957377744110379091071568358658465622085862107139549354539122567328062952751900754940904896394388806425455707262211593631243949164597256491018425754082200472288884663451280304483190178400740116764773956154364713952355819997693590108417752197336203083262576165968411936614585331142075321195292766971704206705185984249976283460412316390812279089005602391472762547230446561373891934829119845493060944629450961591153675525286261059127121220414468417749781863050111297400394111935081890835733329055114407430444467585330390819867745858706466753105873320444866438195473708480984019014571108015111144466295074606523305173459452577257589307863700719576792849542202391372656825993183849635737174554050387357805408322354286682509834074246191721241065928405281116620092328296030172136384928510477358529839208709892631698435885742206374457995610541443705248822335802675674609925440227768400935931817775078576733453207311853083797369573820246047450096045240556006415683554046864181064155915986925744890303471460863686842071415295195399688863994416298501262198265478995063129214796056471849993133924449529728833783355225306656081139111557599979071382892418373574090519324118083275321057583443407862876642948811335953007811514259578279640928378127631674688525323298028567924732045320938542101580714740180947946116048627767867343775751143759233304925499457206276842336439469327017336108444018756535693160788031270156774329211095460374669864630589643299619579908391638851073583655397358685803947562940402286352096347217039450470385257108531336244754542001052596712178357874633359416592323562570393312801881979934876980850885387379015678885924959933804104507095668197806890979130475312701446911990817138057938235367271579787439956478915490640769381923678366723218190582136399034973143981196742174048660691965065868831513483401876813467904264395573859006548375807152818128951074144096045017043965485359053827804348135830772445160037860973737431472179402649530772942955247321642858586419313390462255573142876790225334478786885637977093220704754382447137072108172807262161922034516766385698542146002937106613178446743494946034274590970779402571198873753139912381326000956320636823628583078987415322744621275917935463121492158563100688909580778060593728283740660451733814756940668968790744643728903240457174689316227991526076700874957946365529810800605632053593234614913221150818691711550065566655477454978755929060742276192490131286777580134210840162883087292122615776509522101508044663744032978226504795848394929088091378349110527018915866659781539522433630203819430779722100749295291901417577525169929771479350013718996448891152064736296676121821839308489926024600418991546699738521967567293096434216988980634192953311166015202689067552639251081017259294741159705724670208362379144576573076310550469479661341506294987476166418457078238555743704747405720187095339272312325000336576544182150162660235171847267215331210750964015851018981377491426545299866692087088903694910230493046303417508983514679902569728765115044510267583560834962773334541439538796196861122862718377702626499995437897566186384522424473949249215054851012216707555240510210387330028459361318458442786733823142617697356364270842120283188436738192834713195087173122191012031672114110939589992288467480174165676099378781968770763447597018787011536350704268062034322219624818967910905627992687206315734435950789785292306967195110433305566783849538409612527795838910548796848486208679717493008452144359425346200112410842665667586897808277627684013469829419295802033057400474913978971059122642210407325578913140477467095216337310954671071478824347469732253620897184341401689515209329372895796179900974531322807631818289943318969568953047237039953890583965748355015081947010033649460754156809390948275449981181003115143112437162060285082116771605290150303839981778749861963500489080522089690682794915503815722397466511442040712132800560653624460196857385732581380945079434740660360543591168103854745541390100521085682696417436459269757301112314276156916406438293041441912580970015014762604508430299473977704434060255848315518370986210437182444909324499909412396968072735574990974754392902557984797093482190328085059102331850565958856934103697521787966167710423049423523510863007281287132147932780402066461426230078561408403259834892557120851189853822385136209728791951877465064186101050110001523921401988115501033319067153914966127363813534906201898801186062648881416943529275130201207444850693949715656963700528104436457965400855804416248425718544837208664333866575252285810948289217257839158191476913646032684476202255833788430706626820136562567060429166096739937396333725598175402369018835353007990159396724928774572310017813388850629426776845236106426208547207080605367376268476687684621043656625525457715582096848955125604270948386990045370602363886713679104249114919963014756467260027940693936292085268041593916556942831013701721500246134125553880321201748024661994057160259811420538497330990958586477131121900577851682135465676925436958683955395922697911981510567862427873863559696351596525780100887775161394859476530289336591762402297065783698536071100495347567572284079338746963969820527548854138638091280465567957867380247796245580749357238874918172010300891988993237953392756249295143063917541756523620565537533747840354751434991801696242127730575175317271408992841799710543799766469304839985765697038891618026889482866498396473822403052368385787917654987361628471601522751105553564227093034129063412140503747065387611044057631277677687955828396936068797492992473055757014507128648776037216713666399647951681218150895635932214508085348626452441380423193763653355274835333215583412888866477801396224946024358430223059175741552754477847166515158060159683143469938602241167033961033143444142152378121270529004152968328358142745720548076341739976854032114278702709946582145669614204935860051783203074959984999453677596390154433298372959877021587984045304241723688539565431132491280016688614321335901814598815345115649693087226879981544016379036258474494027676223140583830246323278355589704912287637551609935228638759482647092345489660404395528296934963273296194539263412540443583064912727969941442577153786602121596283848008077648600684421195128428111186065633816275879668504679093930302438194147134504446109962381417080458893859796343824476120094314750139145110290353458464233986653377503403288751178445621701907008268753712348942548452679529059672899114162168717207252789541303662531312161687184002908491401088247419290331003958533280903056898161959584146403500881838354477661617640834335657628291603652785505334292017344423999912982156065639233096831232606113498474590475348175724793522899893500943495075396373482891154711017298440790711638488229884179218542831749857560164435622264612259464028308647766387359459884245047099086787716750091393003821175198111842564994499619250193938047253373994593337731252524630640434299251006362772644042522129335363983888712558650282148393519537829121923251329550479427077479817573069098139817583642674915675638034024163503008997458846644559510526377303887533487344021772585481657032600335620490417735579097347598439475995845429765463674121075351507013851212617101709438816386818003253445607801138931545723258763168759141418393365682229624660091462055145978337911564647926663543627823302548582197820709974731091603511064700974874000731522287664739629127786218446835550020204307191420072846279018318639787025702772268782391036972445486411058889166911105922029444932943627035413309880526880087934617095630484602882766011907089407300282006643598669430991288386695237929866628178898427269704888604473767609420261537717791790967751278719747104408091559906791907723417208080859904286004545456751422771384737823411005311824430632388715284408626875660506972347847736219620237658441103372159043811894698293130692861159856453139893139948999833404400924228379125175552174621891287605139468988472677187466504785270664362574831916908491537125880541454036326747869539649103724005746130220293199503101987750602880237975002552157499644642453349885915909369543958084528045004936639830563782254105626241683217301132374663650818321551390498019391996251482034852336035202979892243773111150091658570103260035364444751774246989158935734705658751497625632680396958169694903975994610639763432305422721308762466857346704606223493784199198380130993928023652274191986054264249711792282050370537587427136667271485530946080779629080935838546546834984036355521684570343035006341023502853487766353047125068844087232667590565579334784591133212607890192869809935963677578312895726970428837993551303926951240589199844906046319277629905646039476875652776188987807508202115485364253791970754729071126344281360599281191735709921525555198027605603718090518902071857735055523271391396250159427253930237186445017661783595005367424528353346296600400846807272853318083527248634331602064968738739216160955927770747209186383619128575571939484457227933909841306594059996512638479997333289827244713523630011731945879729854695574966414860678319364121215726453407658070668960253185401478248747972806312019166738072237763920872324754210132174021931705246883119566130365670703052191237861779392569076272238477050523927062222837494238143061034403779823821088774143963139015107082031275456607954643371353459928062871969469725559248762340560859976025423380535602919869909560761373682770704428667046412247405699674920985983836128293650677449802452216780957009937928110107393230867893546477556514877507479466500875692695049132556126428060059883949951551625764082779816057275574439612018147497800451321782129786374375109974767337631313444066932216989790648141522459605796036374929385390580458098260355681952893952216695741564220430366437229914696760438644194213013675900169324226934913049246702707782481845523113461103453489273315060001230285383342303638247155025551368745632166936656044414642455569818231927411945082796887046941767029660195074502498516529806186805463813475251438433278991996092710858122008935766222569799359869922149925464717682101276519959597824700501422174754586194296039239459092882841814687748419136141898738281264835534324101696493465526295345563461708335109501680694022867505677634457147413217775167306207782187706492244447520828000983425570457784919191688417677178688630332126895491976457394075370098837140048702542926032963877928754377069560437339990100294852638150032628997285511301036985819326744885052228421918054554082277475276074653898905064374798169834717774907610376006282890619457639678129928802002759672944986154770652047321954189029670858378060569502688599152022861683177931813811133700846648282316429401940350166748929939240870575647942513199958612783309735265384335938416752475309684246977819186243437711155992528282731329513697878214074254516312686452327578082174391542146889435909773181565802205796404419421225370147991892788537903377743287340955117413783520191979152796500139386884855693747482161292716729572785638473863246938584052924674904022413438951883238010793146018342916216331965737001597942739004500063841651314517655908597002647003221302219852249741391577952987929096349728985117601811374469220942531031313834496135599318178835441647145038785547166597698246724797440311660606198912250415690904476466245712836382061667427564702775968974627841810514767013580425903857530620365729378401649166948271359285692735430676917886700049220273231626404070255027956209349621622733861948681106084493589560178708588313384417288763890931537407240007280253256276428402648656501968697974430425922584958047417922792534005525247449502340839265617239093094230060936630323480202108678868089659181684792736833014327146956844570493654212738523641976274894176037602975201615359389448762202357391354683427259462829509057651431942095955160726127413535983319184123578419642134288725668738970843831141046585600376882203246308656515410799296469046577706523795053459602461494020615605448430643787299452582262636091970063423456958121081018804294851368286739852132534519851986806527920161753896561841182522425296893463498323878626573832248821467182212392161452163325275670017042893990524654825877851241251856125788689455531665497546430475350319035590232143812858179275339840124608238907170546058359605867719902183465283057186827751076250665370945298883021196273029318588927084757014856899852966505733847103862059963894320941335957796447699221415378655112464853794392540736219275246848238284997312571864576555150869582415134979815701743782733663799343065090606498092983863033353942502182256638127320974354662244588764349940735538863587706720633681111322942298365405268821561270245962885723548264218314546143319125458331181255979147364840129146862219867375818977195188232785208093327828052850343881380195284554650513932469026911560267684358544393507628566726126650839453589830932080370010789324365829155080132238129887146480913564402924712524410024525254450802324615782206358687167110556932854380162468346196749237552277513105100126776057643879915719948597065176021389146406317350223384643458394835435027981902728797303202850846884019875949870378146179668646287546670399896304248334225490492446701329392472583236231531199712398944621765884271933825466621610382140069902302774264438571417574587943978979594815804972905977772621874827919154213901567104042498796038383987308071550425303932011381726233669143418847662675503258634492672941635544061641605812600689785048902465409536738448508044199481231522643777835892801077052872357981319176422544079026297752232994316244056822824048979585862042095903016753077009841255041439517370577205755550817551260179018120073513341772372476220812000860440795123951426598964340376424506082959966615608890385710684640291412717376571513488794464268910769410895310119099929995630930905035222777233262914701401786445146353118738378495543882500856927308783947452874920176886447635311873837849554388250085692730878394745287492017688644763531187383784955438825008569273087839474528749201768864473117831041101991600631498818929990610152778168708421621381839557079184051198067597769599875313775772688789108864591654468983133474235479298051910921514683071632385535103872718754467670829529749053459537652593192516594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801806541025146172162886788358706619093677297966422255933690824586710321214530157614065638488320462046551157310033106271776366327253551051140113729479742423417996595373489421421400236584408113388319761752550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632017984230055070084407533279625699917718765426525703312549513970864944719145272944883050946018415295562514740409525798009901463383797769021293940853102488561567350606338634923684489507528233401007520258283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822876028379225930251318516581337706052092108657561743012334289084699223497351511631421745254267139789248050025172232090821245741107761163535916860465237641185208310455600513909589498730970708723111425470231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369007931396300063769702007625350507261233441510111428070936819402236989991308247424654012701940113222999932048332874671355383494579635836899288623290439722584493817107725905803949716259506636916042428812825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398914417781080440177680412631187307038032840781365152378659505510087403583849737817232100166230527219947879907436057423140992833458661530302659108802848943882627192860592688546252611811506554314391860473863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824303008229914088423037033492000321094764235749370825153883596128554028571511999684121309513297601060622384467853304303605283324594771517521109132184692968901359920399067517466637717540893162635269159223166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620011166278640684583474212201535461842745627781395631003503800901852220399726275905468272699143753600658655126345316534223994033256987619903270018293229045380216469805315530988295337618967309534457130377128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217527511162224841376487939528948768911062083467875763236881995065081723493681850049201395396931150450840631833169795650011516330083782711074977286046415193311497771862005817211835717658891646355701844887330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790514319525735477141111573062837948717238799010110737197033795111387902442285766119513470938240551686729869870945885528098965550905005839479776816362135995896454669367741167952365593301962543171459828163763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010902637401436327800462862893243121698489569692681269965570096116297810488083332264011584449865788691989155116498775950082011654710794954761627253597443140698950143479155214870180524406888053182445054861510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576074349083808672495330340119364736422164031877350174262838309181603371305308194700548145666334229294394379129613611797429979597898222018382043393751513900818795675780849881967116995779814800468611110202998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868203566854276619326843902885919967881472483502319505887747564159106418991240691253094163125619541095435308814642343408331609704950449309811673539831293735539341187320088670867106762928026623131366609838364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096537269399354992508460932223638918187900587249238610783215779790260035562226643917254444606289329459454295831001567300550754372474262118465163712077024599682774758902127077460823281087774656437622050892211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320805389733801159125087956234072913945303862707068178014681947724028939617221644175848630204516488795837610929850676053716776401041227878179550018233197260574617611883779468454732039891838117019778662208080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401209539286534708463158821504955168014428706494848315638437272630481694795792035566844577863829722889535344118520610069545041770445474492597086698863609934470061993886472734499279127222316585283623292536482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859019238030590058722292896105514993883061413500649369104739021291543977494536051080648720801311904902231107072307706242833919528937220911487783908790449596315222989682708220530489656016395945586075535222221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102608470372049953307356616520160803158835638796224312089007094192173450477878774094071468706792259425905227518180949282295331821489040420843933377285890253665084263277258143948601959376487549244711520859661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425294715561008799154147069653545729992240709325803842553897467763514808951876988364635894254942842207312036451005027160780398336131700022763357322058050472099901287776893533759857416645852007639216878048573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087355641896708494182323029269132494491340375769778800008521206899488519501187042430819704776776564770516660073820649884857171048322723457119259180652711670489692290985807515362751709550528429039224365004824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617424044495799580315561115791030873134720990353018949994658219299219647710568822829861410142019463905423285844381712408363322656243251238385947763567301206764410850147539814463428593104949686936382640046416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324099809206846305347743324194522002176300046622820238082778041977949338939188985224408550686669098726150999343275594219513614894603275485400282474638185574303867224848145712041289402200141526884770962461222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143276559892571212464070497606068894752177888846753657731308884831704130847083028117792594667012087718412865941990187787509632002811023755143635612304865546153298828299904617451774858147760123133434173138771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297281743548041063934506373267506843468818388748332354112166341880424123303403490967577941653779084125868798288610323527885733215533815198830588045853153469043130898096369406641813704154859314966671159813089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852354302783865361171124532148648794241321331700852315433727746076806637669961889512288049108911176595515736498473886069524716684752375144641521336548924672761225853936148416514385818691738416754348278131766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001968151695921524303910229496964390635521990651394321630365345397471515735014459156097003147953738250722286432679118022285454450510066868382649729074813258480871020887495051426964293739258136771841690654521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875515418115037141294549114272696877208861952903110006521480604793894304261211250474636222567539347681922221920063516876682582150682798801607357061108055578616867049474864042027000614400977944187614785497645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648373947107451322905073720554233262086352301211192300993282164753643692379063250335682531355433034789629153304492311538091995755532944987052801903351167407527636655981472206121804385730030729787921735685000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218541195151992655070437222451106336712668962567275866773882387907913364509386511722013962859447865442962183266784517002027818841924009364903662723574437287448563310872878958458482352508201562742207923922033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035137916732532182650044015006462416364046311782779660535756676037161374420266916172189142991639230484973825428942219985454786894825670545771208306069664015175470113984382899319336352288857298115482869135960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327639988723256063689608410315441364214878261192854183849957430442768683851459149189187424006619028314479859226445963347995310286302780183115008930007657628088707768885566711361061861689962499638799370291136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803213500493619597507026917278323701383715764323028881013296332873938245738746245096895082238330844176192408476051027246860191447430391510803777481923871052911279590551749882293907551274408036416932829212553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964090640451148094824868511796216404428068971957629753562236181688850027285694336528800131844121214112389838519527851194814679016652840688382186958683066129590397745990561487036122898098411382006158591424712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751835565288146631275237687067466752691724416729735456956733166771849284394313859957738504850610973138057829209449944463239430606875958119003860261904921098398719699336474633114066294511147152055694804027987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766311875241074174329874362753850457777425420575766273931569840438567729143837835901823517368770880480343742863236659074522885395228357786813472195376605008468619896263300503309360409978222914815147525771837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627448671852187561816294711964713806687771536085417869418386146607485365395525809016966237780000655836818847197698244458732298445308869902993378877952657197280899159793941934367522718663437829079368244403206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234042475870337917002214925834352410157186453983478454517589224123613673529136260171215544108493033216442300759697110588546958695711726320379851371929401448711950153715879163321253830793896944127468922739861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903554810519125343871316001524124785504522454804170858009744164360840375963801883860748953526626950353281648096816794488017615939929356306431457111483516674756546277594216725378229613379520048290422881659995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852301598830153361268342991776614639254947705193020500310556054936776339163283953895578869977697143135446101324961890191705701201820667021165776654146051368534345117330284374109752675183557592471851518890916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796219644048327886379960409838825362938230395839698373949610171235821842177439742703646911258107515945266355464675143678868797822902295599477157643067126525971855615110357476610420964178412476830158403397936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012508398136549562045150243668431133989738587361130651247452423215425715091709831141400860264890539370712774412440669076831670854240573003611786905243232054426823568650032703030650150774804738700240267292414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806927373009686610988863789029557324737732183929682372659640999994766795576053071821618693945992778164452536969658122450093564589944321917279168676398557892539969660988248722705869024920017849027121486353955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521657106852902937901140010171041875820439261982433726156111356858417307628652063100312749714469978191038819926090166461797540691029725658474690450719252449465833527641746399517886169056732659316334124585451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475204412767765750508689367098033666867867986680958545163564504567000982821304671244237580255335849496783455027631075616185676110242006229086221786801124345915647756613627310796173252346814090700110500979458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338474943499752065431904882687582535051569107427134586841794569558271770980275281686202031319544359749164686549228763080466621431318534173986503522645190258054517242379319713354798944313018430240118980856828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235004676392322381988953904099269167859156689219764620537138695769799990888413176891511374346270237557613560235953212929513393306880410662258095597530152275907114307261209980406112049595447025290224582981032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449931635895654517074349410086456375682365245225528902797171999867299638162137834713253882980766128714625534783529714630139379788432298529584543951967680386477081199962158170809443989580382507071135827079833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325335032907153406437209910495544172192961728518931878766754091358771099753068394228329617084806583434971118140092278253026159348139475517360355840894266447493309584619986206812924842999006904953095601991673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626363014157737299135855264761831061547505505435003978879153453277021596044566357030677066100192017932140171479697167384697333397070560585989228309253129526494279536183676079287994017708601760847530393479112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377192908366864035028279947062486247688670440208595385347241370469282593722752895964155974991677578726870096143793390912193869911363019731897109456037301611109766624424400181780650555724623398592568655386116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409269250879164951012251867524836356160571234863846892796456667649848464767165046561266990865485403705281050282325415823196482458286149790041803457596958657165789359912026924047544686256265670714416277114320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384822924672145088027677363100251061465898752818456725920500790060992633179350293026339149754789980559159838740722820121116031847446073130926422360572014068318740741436847356693028138596844963678163554669045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605540277158332846667905622524415031604568648941811259999795035307072839954188004062183769040528604637822068355374436554856947783615062635989936347870279090309974627721842411001764821590127056711820876687822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283443986788305614220699486564370563456816951020971434238126537052902311489174162697598468906754938151368823125531785534937461150504580356678194431847685134829172679530465154959807564116899823793686265452254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265600460111363664106953579734490868621432857776929771388386687549173683553591485305782457191099830298313951375705252562095809540178976954139461517202617649660795210633054864581189033232775355608042092880795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898234803767228391414146393834419705052555274566152430703116893995864095218468006890113619130090893426827828837570563951953301251801823500492931069727258057031966431977564341418649195709519441152022579601579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868088319400151779250677571751745937223847177220508209307041593117362202000388130607888400911177396641888367333204465296464459344197685964281262445125625778863231538319095654286792308345124027616888359652510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526739682566297578541127324599996348271937105702177276790883005849073633640131647993683787809427547616082779063539802635477089489921777344518972910084616490569126445840049207083085260645566055418879410176891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144112157409261171753177525342523126565278956547994952499966134186685611371726575357616124675639363634658529021988359358313921924913934186424541359344281660384057943034058583059516125841208664179704045005570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502214180191043778487240617468128371996146283916642534803096672402411784837905118698833839179026793076495649132796657819771695645747593331331342626077489713671970058790516411057560868039039268658263487063454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386006628760697072692238839211010422054182314187838700284748888389056675063312220920514807870613610842837440600890446146679737158262720291116842293247482478917896858777805977609418186443163400288502645364455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181580494352579524060183758509979343711308802640215428816443443067202863030612449853715671809096783674127520201113454134998391711172535385170214243067321000314413728871055440789582470237649047523203097059606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991955311001375700873574048960493014910013105148285638699842929417364755785529415333794939202440231719427160290231271594369364613047780157046975102606154335602353227271325523781649405525365188946498390345178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805012609732425756673965166418609433503841496183873703509380703801016953663046160924072943622113373553722563179924520868182716706419610045069000178351726815392178658474812406988299439446928475392120476967040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482565623937107277080044260302578643754691414064673799881333062749804340488444339372858514209290714069313278515053469681273452320463635666300917026335976323886142443801882404910085101582522932565567279300996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669541534068128659434699569118047243766089383156219243865641031313405891150807219328673916883238149447760719920810354753884234538967326548496844080635106715752371203075032887685369166123886017735354040091088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576537713870990527259684940878298118615258884925272186032895221824026282983232700817634556129971457746583785472429674618246643849029786530077631593791964425478394882826806550176331623401014632709472597201882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582825312986908539600263668907255056827141000417352289848217175999402680746491418887030638147115329646789559318086512230266369972047113174786349052776694142734227232795808700025982805258013785387832003118087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880612119558068900815993982648764512003321785648698432090637602562999928889730761247741228383269616110751648915228250644546268306417227180338343173765819712463951447878320009351333318655222338955660251647081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832515950385251731366442655028598105764183707048240607320787117705529545309698183519729294115418251958353083363474955997898763199425104174380877385642307717332540519763611239063521989491743905255002477559239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780124121329727491660000489927474140215834370124815741912988770947116933111041130464645731987871069570113548766016847239555580887290897174691220369251189724680591711257457394391145651806106080563786530895784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473178991834160540268599674872180081320778855338243052788952528970977080260850788175268441974747503008944242700277303247293819695799127666762690253597622952462332687883138948400393681704468721851013957132476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033464531637313152749162692772871965807579765624902962412134273947494949960580458288719222182437360162808616446829421784486643308194165490980503506193935373441844498848185595049650263222645086225208709839417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170475839529326011944310572999700948820006462825064142980885784611984385093174349933158754056846184430872481690382849694454914912112838991744269803554425667205923759401508528758412056238186705431189016681809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666064130222407809409924086148619661646179157317812411352085815169918245541054412567621643344107017351203236836922470239475223198646809466576700844147762711278182037067394773027252712992031143845135201994634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673670760528410517521452293493248028426483884846900209944528626464184203472216570956864347798111036622042605284032034121534186240396136792653976305723917678082394197387937396993118579045446878731500279916476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661508956832617959871934719108242562218826890023341053971891760363056471342188593599166100404311956899866854709529630760786863475180887668213990046769273709484748663262578526322996526490290475572655642628171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851380061764826341859670837636160177178787584787211352425712748345276492317626462574367092266211307733555205683386054307054158740244929003575611165555716998579313100068193328538001828777472325091411581985057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159630241973591496606810901929538788649629120915479131840927623462313114441025278015853644351302631195924384614550783343687132109051148727123095875779712220718360713602361416279336302762006615130143175584243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391400723248127406943374848131945857018441948519546090713962540695926556536231923829498572212861264509463919495411072692219061756817721293282395098163294236973124724084346206764151658372429522369301743268413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563606421360246367250297582588214239709069638947515852196010056708757617434222006881840186782896407971342119879894242005426232263910916080832822172062383218156600956376613115070352539431370438476406712570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408211126211183077842318805504839023018238559619868972586637538368548518808900275672391487967574758714477044963905966647638840555139832085110518086946733442146964388936519874292945007963579336776306583547913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435581123376296279491108962728456306695903129237389498739064645482345265301124597093691663681984294019757039611050180939637076776957461341673659491868407159799409774921295144753643557051040490718226804775346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432647209508457269426761962032465242536113808128554108098613889932317527610005936827481891930572687927052706681650947384411241352252246216405896697737766266947223060479259376589040545108908727196692960261564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208854635662223796926845772708006242862470839100012713227466932910775957841160555232539427550960060760837053344808069613574798661003456942905048742886541585205718247493430292664502012901522850857613745521097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331149099331914415825403937671038561512589708413151515283217981162509440783844635992698248514779982623836715422818506966671626620176160970567094861125093594209257672502737040835833893160975056783035442840000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560456839735821127233493026657137376157808881484169546069518924508977614582773056447115603672340137375123911334222135099520103561776430770908044730482689991779764687600344803644414864134634689995078455510203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833983034177275287197321653523974783666159883000187013548007254996779481564122250731982077737494936934051592615121472524091331243285352266095099178862420621470761814443651682059066937026972848443035060252191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415585527921329165534108035864539423604397634616953352898463390144370977103171885263352978600986693086698435263934184369703188574390628654710685190800238247922659706695796912922827797760081119896191705187657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201969808221422778472139305509963930666588351205734209536232706833519053743235096424169280243492463752913196824007038389209946820797082050855302650608417290646789432924890422666237149391487185204533360509281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776294317346668701839896632736870667173889783817058514355616626575305893492837995688371566190511746934019853587525067274615771754279297665411243066168857921466304826537623629178636344787320604811685644513319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025994391846880266009194120701567367052752104460254246476622255379685622112998222213661949692780512346135893880093787006445888955300930967808022056712229117324496219466633608501509594916809119443188318875572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205934733108122670744358544306390513548612458469235277295559595081633912403448808461557483165110280565969126047382200962429878618959522873019383292859627993498447285095834161821543866108691365440642590891158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086376548403737521383697754037253509308684024083186592189475434254656819933192028697364168763807805594272649094054318608688358706239930380932489377606395880881692788217232840100800778744685528493009535616813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295563717649969227320973453390327493842246971775604291219637940043929139399369638343123810572712316016546238186080341693779232360806484166851670088458007079905399019138986928867886850125467916825295729795090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314017619792067384253885282960239842855401308933923814117570120808301554188871910117122035439604125881368880489293940966294766794056226564819392253637168630106007982286989053718470719552486361442452983986054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001120176971506948468723239775696021905302772913441798953328457172256959513939845008081855050284617312093463323897674396686784116298253664412222350542063236389978613011604606427642524721199538797765254709899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572415902123622515497269878580423624412748789986559314593826975693143055498179506531441866832732881951302751995672175382370571522522917889973898390630173991729947859647328824514805731576623972746812720692835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560728023628284880601982030177055736035503431347690741276028424070278562450186760493680921796666305062857919256903216092155038298157384365049568333881991420375632076289437684602476610394352022944810101404116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741129462404963288983640551545380230006576243147668415333980526779819872375955284634559435087597530812254078311528564591382669854061989075985920268537279230084147530346162184574848815554875180280750087011486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263601339474029550277428860048235899761603260749857047122184558667132271410069788469581712627149938589828585921462536869196078653561335684500757664674333108632471158007102508635704220042755102796922229828867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128341393926559729662026384969453375872939469025962873887401488070946338065979969831651119290880251192560285817304991084121641799684325236402041202666033906135644140131389322120287306294453261319831333565412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228254040766261730855917977487126298870022667410474706114686980287027351481988793306907804051852169828722319131755837755538329306419343327670587118572766871456496475004679237066771990706913870008711630394429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599147334552216665140583847415931793774701388310929207297257480726892748636254501022618036545799496941836305185203348583061388608915374757681450689048305047432310417567254445678677540565353246244263845011254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279213909238724304151108883374048260207564476757768523134578578434649845829336240746480141597946452143509285544414656623672600705710744294714808993054625246150539546672945745477522309885938349227321181401218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226254562010126296227425623817530051776328637553954276860419576758487868293565801648475164681085067253073869350186544318606782117480706710238606132897325712447823979443239268514685587071759326786933587685471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749966523797515391763059159646103471521214656427472391853965021316325911230816528350294868195657135887476772396290191693199167768645873058755288747597090159188858413402314944535163715820461193929538650063090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944385507082778660432637669558899094233921334532437458692369553584084415785410486788230887659149925858776134937893933817239566126732645860588609983313023881770669293348340480489448144118284346563752808166560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990024135806002423326855203253436464935897752706903435988090388776483528114172898522061576657718974599693126904994274595857748900715017710280050510218508746333748028182672386637611059367212151178910066446038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945902050613210392317227946862868956199674192340073901316879381804182128317285099359198047059989085315255060611129029607455276541605554323462610167088128515203185163523305468450163097876868862516095539218201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067272180390323180854549352300215703224048303575168346141950451837704613129450220640492325433720823309566895789820800186133500506875378551738982296086457926134601229336427894129347237377241183471056719947498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148002630594112285629020991982970892267520245118222001125571579240733650574612758838238123948024110404490718897939017921349177985750287517112124497071036628890526745050625093926019965399546707668561456593004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824896131026973307385912498790374187062600105142158390408876123703653713520292948787650548885182853428248410038398553662313376457670923704477054434480282490886232209658664498591943363119205831620545310144578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846834623218046070717582378163621157379393336563514361265578824300183870597868274534862241033127098248694442254632051824297733063193782880524736277279010236575158387770445736380232431010591330252239746032544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379296322417785536177805088049496315873832128675554297068865951555521682850849181846715119760879072356978603646204109197206493004123150188837770458311397629187009238052681820978751665089521199378270494551399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583793967906186082020738486233385006386037167953946412827981719113119614782167000830808950785445813266954818166386256950925231648219178221346241417591335437979028341423778353888920595668461979810523192825766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563455727025608582660648538391808817916070760661386419533907534631042316314346145514954683921525457176523017627907134670298964119348104686248731091290588286930561548550109865716994317948320400204615028922428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400859555943921238902610148002411843673257218566928685211711743895773556713694403655341882663032196737122047784613967242423934382065575710146521083904110580254990574309270936597181213253729453276129255716033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395799214257143099602033906880057835187398188931411813030607371891553698731169760498551140763775109513049911398393241826775067861293093343419446004710929787141898483801103110274188437832920482839062201145924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842508141055013085489623424362849791041944000953541984782940988043650418337571950530816933625465486685067659486021084403208883697917857456235888145994833927128325817566478148930763018318845031751877025433815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675128182899369369638005209662580963095224478411416233470638867515420150413175353850008132877162808104700188346896555554432576568037656735020267265299682668844678106657495635099985961788943244307515831054977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148501978569587399755567875029661732867079490827566132163830257936527271172357649371977298818387650160046960198076260717297338719586498709909968724717494761114101478259018801182453610215220422049819761816353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635924985723995527632014441216849154357780055265954849998512479780901999090881425545314201117411693915483314820573828041454362718046468662629137358234966482875220896995836290036596212940685485088790079706097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110174450351946487233176746260249006611578886109716268850323904256421665793019714233077714453553878628432514336021250189909452614454005268521377177876674943223919259355906514401227995323657387859633667188679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813022918728763660112598163407302581325662620787942939377308834058169822940480343932468067552000853043214053837036811967449736426643299033781535255022524682542776448272604906490826977213886983755924420723772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630631679390426246365331538246802784629998492955829706777036736178091274486510961319478375542147347260977852214220697744173339302375889154517446218414658881740633219251066399862636936880015612905397748917869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101918465198316227552484709378875008888303178635730728291876730356327135387492718627847836880270457848570870734728184365507652351170625675594045614751081746288865138894890196169187358664401789113965033124828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119315529395247295659610883491077311846506610853782237227650723300729864336816764066348271265966113355194054621502427959882603393437778513689665892077747703809123061987976754485388849348861517902298951335515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748888624688910910401578383578904647033850624225450915261785817209601549590419019808172498633323653239962035299833581288184440031231668441282092157103650031779327671655485926788764291194438852182338965094495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159707103394639477290177111179548387532454308219195710971163136558511133616779926745002254567461727026192658228096930167652635367978562181504406855242502063277431207892459280730831609544932281990578760422714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332162982718868028770488590398165426651312217466506883903438805406628761324151473649801132256835245396445917788087746545702095388905755986962043372578858288766430401486028813478566777522316770085281567031351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983464611253521726264746148090624508435609183266233286147657178873670704326449642375583111810861353206304527313550133893258469803965075894599527870986867736616656527294096627095361899238083435232506453540653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380795136823259604935462698754785069760870906213944467098705043539971706828557773245561833859672584152958438809541003637976907483263922322696763108630399810679689234160825946605411965782508337910051764307196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038340639111365752938473873273964758695119039096129214465780096562782308548525764983192372138419858188049149140812202983666476256389535915309542442102381140094220105435873360217656075153784198983618305840809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563443769003357417602825549108885215323925060878448597881672789669026317200106720647207404594248900508076282339720351383460410116855895150189454592283258699909935831848388833334959057125432197139992855669836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688950239364876702931815150767258597678484923374584494308923193531065125047084459459822932339044945520691951947530503597462788335698461320222129938974906934284023355296263560276993322927250894302020639727851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679346403525512695447933149314320123748438652466578663381046029077025167406752254703544717816861485292245879861896172324465895281971514061410121927327569484710478372857694609245181691687995355804049841241104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903589618611266068498281807295600945732186507395063439570125354825915035368957714669165095764450433626512511991682040885348821839921490374688320638921958396771807212607327885619513135576575243413453665708486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441926004517726990294651912262530275450380603248851883604793646322499054825804957760197408544823830902887041597312047031639348365489265472302515290804077270773036185182519612016624249355133908758669104232950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211053477207583503146038617532938273761710329521381275669939737444185337163250635583905004764405043184655505073040899038926993628862046940269584431506310889786433825298791700659552819878337554177791762887619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685225290274578421689690036843713892403690325632174580396528818827581867775090350407785677282152803744178285539246393030179355759946961952814180998160358562272455412759745369637536195570980535234513266574644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915856132717351681114909835419221182834703657288674488155998026216334728734343000146176038786590013688025581277660263460014492081709590733726661036073624230859884385252469347359660993796975691783492560369338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932391220211410475837363815388273912015906594748848180494898363656362234854214689440077525080023077786376424808628191028182034711831743730349334426177975436953771948128215642985465056109643559380311477664303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047400551332393896195551285697859802047769760052520606805483520547158124294736280121908831151208169368170922796178050408945578359913093476322808015149969889135696881361110514023419878417059507765640482463118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001331746125100043073325401075314242536243267779801060578340073046225673594886885619126692356012329843557726500006474319751470222670528280388950057002152053908057026851688179096653597758126368885914769419797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263802729111469401471195506772843968772487327158127480428597810302450513289974410757541535707520610369102909431370692300027584895321251197846884642301068044903732891922605837738861309121071177058775287031874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405996609728435314033200749819370748032083424556361863165997415001581892543723584147565843571193494334859756354649191752511745608308191804386335764683071924141075004094886850106059961850142045861653689695511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018960179615887369958353631530305030483258619209352221459420820741303977987383790906406212477970343951141630488008217868194136392839249637892044245671039999528975670486179028806273423845473978447281935512811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630288115713553811281549952388263090680098257040325222482141895457311947105049339274555935132042065621536892949366468640905631095853659861276550296528504908502547745982156692951273711332174559075315718029099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526218782872148908350656108741927216443745740883270167599430945650145995388325564824040661128333322934694473822981475820213179753550555457762429632551222563613964468549978940344397493681610165919412356501732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195559755419571723966422267645474652002119862782287820240364525990263546177059646470411832300096579549024871371179156318995621081675428352688809117989183270015100894309335022655098804172681489088122912870829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408341010595248725690306547673218555781410028384420588904146821096690543375552065329134232041114944410077245985564152890121622584263525511470785955532136098809328950696448376187763252594271087013146790767502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215611444092844987448122559723161679444150344586844820617812142689172348256874778766278361683677432494087732449489886910631126003804788658181342462107208455447364215184728768745937138298428035092082752117689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870114520143244990958695292621402193397300316065173591893933235875413795465408213880912747306543545173566449093275849006172638897645842184591345904519770084034522599909618879193398402889543235627906082493689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345860273058541333874462705453538350203975715425221285252128218301302993326617904122269238706146828426457480684458555758248668872135025417309371260417969124276481319974611402653413800502024718139556939770266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798410760478293851415988787247984223909143764543073187654518909532650231094774263686363967956510279954330455019629951028984142909911558001888557617770337346744546784876147552509669944506590337393015003131608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130577603369779128213097605368580630079515176056476299641062473983496958999491685187097498944409345983593523263468128802598854253196513163595894431454200681572435605398018596809437149428655669441490034911155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507696743692985516832037854186774223763371695145553084726091429391925640068094877398787536390431328452109577870245721680367654253697556693376916893721596826427575374494974180054169944270856774686279433457412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508783583022017268272795159491962988946547141503006699417879085694450273240803777842715034138537355605050774296153837658200559422209594072775101931880464424558912948593645383784405015959209169180992093220851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913344997241629647348256737640787833029427750736521959651753951173284253848099934666697011854131164051894952655495008143931482664881444646402094078323539342361234953898624815016462628725140684415403232410303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066860659527553275106987944541433996555161949869209406591523820117276786661628344383124816662520388365762541266998454645663056269563005241453508164490795914799096477820024481302876707249446871007039715991137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123242592970910977002929721219947444262285433086841273379116269847520854823004156905721012202655469803567154815773525190469140430937889334079783576638924079458310538093398617146133213150026795797258189622905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189529392435623951453903175442236331306573901918412314589429905606842925375989779182457369869473304239369233735211154133584762038181426924586220681605170577372233329961192988887052130039696680004463367180969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219578481169471998915071084496263525467031605791774211693822077220932352600571823423623934394111679245840915260616864130025591430568111117797082777361518323078893856675090928097083693313274270041040190294614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259799706756439265596940213811426712898167295742804076468583369870354233990641206190892587349011664057030824007649122612850101872935100246046182225683153238261980699821183840107194822899896073720109075703401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482242261430876280888342016729941844956162886958921347234185767972108198054618158397333178314797813928850648258250881896576169717918714150170609154500399663989704484130921254691232004758442453751004184464771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314057616524661931188606904051324232395317331395144937095686946093074693141642761616609318597058895663525960237753074830431316525457281206579123672849821857534745553875476826027002266247481546710531782539114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981890509934793798198580697821865502181327039315360049815369763298650553658774363415217958775612451858034830994833708860254890915258282377983668348739557098706627632980572519218791453602855717737671378299615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268144890302086995405340681415438518493965990384591117458690409573581466833603032345644628063430524441222099497111347024145602396931181520775528928748789363961892837294870079331117133257969760228398317745577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010792659045019913999111486319557132221245993272985911849735013224173775276724983321615737118005690929970080181244718689665787726800545551153681979719882684807894522754243348703672318842103520350485308724115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767650666487720230673352128712295728646285932926867706130769255514137249340019276522485394327005956196410907039162084403283279898661939875924646768939114950318280834793998604665837250695021193987592464676893911495031828083479399860466583725069502119398759246467689391149503182808347939986046658372506950213256921756490238876561524018521701221162127468589481789850286474477872880522352356822852035937224412799366379674282448396437806808494923017209468877774251866079593245371729080261399410969767654663409431271434368806589206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965124278435885422229450338001132620039715846114551960415420912023544705338201478038741000722524862318388819378019216582103744167097585735374113408393955228578747068218429437450448918247514388781233455586345077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896883382854955713228848591640290722819747439084329162549923360313093772591162447164874142268157619944324616057295606007775572712147755502821957088598761030861652699743456773684934533075310785509520368342153820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543970501044880124123142517279266978094246624616089531136154168053097688007906225531274958649556987999188853625530061132458335482857506369488225573730403719252797800932401965754539426019497499777946963916736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622487235001596551595820360278287417452051357454840974327538257555219568073477789127242952528547537741631054371227392203054066316539460792954280119497228598688626209597057713657674576946422985856740408549931614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205495568478674730118373845505613147815705416301181460518125831815266099326685656447494864272361110063990201531934128825983210736949495291608627029779390422363625159140824703432470368192463982751895269102279503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282194279859554554166792585108532064032098488506278156616214881284667672704162016898436880694859910074525753019823764538420560472267979845632601505549341618925533263566771752943034111901878705682235547120159829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972832176408469533539206481500583501825585103085490348803833748183194421881309584774220376952264714441724599395934119070544163630797214176855938286411209471656201941013076569395469755996400829760053541886617882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119104972061197368362956703341942779167623834154639216655897206710021103908596866839052817371965278139213450154756878629131833284334547580722012475467487682898189234688032497121578622185846523818179160338762205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465997522304654649626487270505042798563552499956894354846562905335283890524074768282346944251242205243214604969115159950274511921156829136198777574429975081994571497877404754366466712183671863998593864775848049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723911688903236692739237960555947822231835025757695690484995783553419927080045371029096730804871931921873490509578327909293340979011230509535517787879742573025912661514733097195021283664439457963959427214348479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500055758131518403085059725619469623569650725848509348137829283722170682289794264165425784454200928474864542851382837277838133513581940827953579228398897399113773593148731564341268557738938282797440373940385808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613934845228586067098922913986007376721642745021841899068751282105164071420660638958780283243197758108844372613835546296124606128103381311012814748306492500156551239064926376056315572415059444644757897193493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757530258196237227159074255547573401193630835292546627694571481133866548463902123036916905804954067841731055946591859830350306583139906831697648387610119951936625361388897622661650846673375947846630420393844658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083607535780895440722657842315084058834195478235687997366218421868049687643075313951636703662637544391351854293973863930350473224166952865438439549227104700120921738010383576095311569449746487595685772393959461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549177973118459399261534522139961410983491061840577367414824444133572465291503100508044625750253745275459855153929486042330214582807131173753191394089351712155180430170462205544797376696674789317309627148178043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661819045685274746655871617726585165073415506594517561366784259071595185264923266119894199276978330288377794111175014474104229080890236608339194065211139323726761359788538923428288900897730547336312680332517109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021098785880069442156985770536698448410868673105069630296090619342316066387489900188289495125615591102404462820531593770968426564803460337817314814053845044990759203550906445909909091445259725671495302827264521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190011539533425054180753912191505983798526157337051622954411970307888743173998914579482534998715896943787734373767516156639546476243520818653159751036668970777583283865057523580501714023236204182085387774679830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160785832842513862468330626033667954679124922303238892956877289476121515363960309406276531197669010911380487405493778751586082757323635456685806749062716597215990299218670861389689513737068317315680091955482779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646686795031121791267912049422686319695226494152603183846016537045092592578800424405944349467622855508545255660206942268773218946333902767153582022254703312234798566827028252459880123468395377635517468912253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265327588955723849850576364804940924804011116277087155527988407903612572788359124144608103336856769783495825697333839956169239890008502935353429996574069637795021408519030064495477747354841168405510287761108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476295128819943083866532048426740555551025332274613422199310361947772049524338821178503225046229221424569555500331377584285710265052016884487127931856374126072774114178698939715422672763228658486169677581873952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812540093578195354597345847076500744709732549393103595244087802427666984630842644463867363801628651193925985133419563039265595711671123044979923211736068489759175582631622390226224898462286579357279624910376403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642327072727933081557155886648416319531614117369090813201902738952842515499672243034890237632805437291613982272529908369088924973885229959237754501267808873261195461636209004901045657272381218607340291854477995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780805023437355891615538992746563307620080099691290761006320537323126937279620073905433437462210258995721397889190970317550197355937869240463611160272063383384090322398941891672249406584603868835991272521420089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905140382347291400900979224913024997870400380541456406429066379039225230449217160958905202817816159901170435828913409135889439304950965996051133242944825098365107498514890151282305847215258025185011999672909230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508603472258594175772471071244270779869072099558068222519789986479329847328307793432374088524818024125993607628074995522310463219910682998081182041577020240378672352363041586909642813303646625339494940242686862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472170777317324261128030775906546923950229067582820612767349847106351976446644271672093846156072556820379137520949039538816862720308421927493301196890650218554242991742579222620450885193664289287722877551300947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050990406816463413145731448493938698331347774273521501166697679503234920870266706333426771215264880879536592993735189924206722511948073132659233435772079645297777548674384247689261606817339169281246359135494609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523454104857318779100347623305884072578334984425498805845876271348453269204022568383164232223709764547140509123641344063619592205000038714900195783359807810085988860559728484791165320708745934356308021871621114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710892820426100316149965985859667959009433747212333443895178821392131689613734560088472118340553704173908865502215538977424805978954172343536586149015842836947490060430889525606111387554385849627269150910862397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288229727064109520105288380786769462037156395760476611450058080477176427287800131312774132443027234088512989685603831524657474367982370460127907578060892422712832226440307990061532314102079712380053382053051219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954023597171539469246442743880275961486494129247527733741349507148780335377866363118562306153486757767063254901868295800382587884851764556308708777219208318388986225367791551404036491281933272346464104104208811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321754803345986174002004313785082861832997568177657103119631581865995049067237979178736721907515640653437764476306217057669856708749227075028087672462042253538944741424134363110166436639699880878573350453467245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717380068542365030323737486778702558389059893630502100871664697857118051661731567029479585884426271984103550946215100054672653266686174429351162104756739024197730966147242208704524111707433388517866626228389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858924652325066961147397300880047710443386543722688439568250088571648130946844612709565431395575475805079351426756313819362170242297318784812277683189574070484623353836216595868433085796285376160313676474784725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276650708667244800880233097892820355930828885978535341197850211821400468425054674025497714173333668952304916831444376297734827205059961842796013824382640900540500505438995622032576940311410729669385541238618453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495044441606876735071527867361649906840791020504384460123082621949618692440030831429304478409256311863207775126430594199594917717064130890686777463854391779381975761644681110663893235836184091595321163597880906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097732689325932774191957149924498559646976173046729152699247405557698159349663077375470407104034797497551771084931213539242932997367572202934597575880257640391775690512155280231452102931304996533393730232009205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608173187429758719191069327571217995208732082698186359846006727643387648206815611367912284097379440355613871405973903686799304742369235031065342146664191636140197023934232575269429902746933964408159301579187951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109381630424976087706154578395449379187191797782140502257904967221220778160238014923812940085463237140405297277693352142122684618597821174435852420591097028941984624689995232422398165559046677132287636196018384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736114148832792331046006134451413086470002471956472167985528236769001963621404356498533319768880648886200204617790255802270949683423461083492572475354452133926887369393128985048595882232814751038118880946045143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606373347509328955343251749727379136224270823935645582443273066007731554713017808401693196075223441839922700118976889848446350552660726916423783790080479416176843343832284585376841381182511677563838892583940201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184102901478476234508967028966728888964765797782306997988192708835134933044589817086468179711128381820020441974991177215410342051654270270319998466349146952076159865068488522031632873225903815064835501000845177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304009333102482986091924700441157769350573870042859048669736423070558612735640205404826776438809032580278850876909948092573290173311716530546783923878398599208449494428235455111107556714179415670619711986419956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612991308041293778671171441743649417041309599842774961523852311952163541571620418554261725773289754274896425245583690080520697198978340532795249628326415693415613998572867309874226214028851812860019084603231750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056720430564404493547802696346463971915660009263686421734741176193906414540231793906317382851890365239862900709983098625224892343712260609858103040957638851092438950976336494774858416747664414121044269967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493049551760291677145256732350336713095707817696108902556901313383745115817342608720809197689623761582472327996967626594917696890350001810871147385743498364099092793369454718156290345287008933177864626001848458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812897223016943175659529582131377364076503258241209583942276617489875728184847630287518607461981595309145177675376142287815383246915820396855647131870682486414694355434186424089865340226529793504253105307455647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729680400985674094472202944414410268192913411094218741513282873310798232925145066107827921012180103111970427769076943035449752830570950893363533333185109690238906980629357163430388150748514989827901710659364412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586266951974361124884659465827287656449897715944442118234927551749896827448384642155445225433577710157111531264690883868010392137927188857961098424544017603589273600925798619743410246093628989695597260191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717135357265288218568611239302212235302190516277356974128634983540839032773548105080711638965572944766845792174112094484019965561435530689830861208494869864517106673707691815725446046682028205264852335869924999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536480728361569767818774221507110373995369276615245244965350910034528895977702974277885415339785881066071568949262130827794926549436210734569678785506873855611333520651100095167223844443533158667179835359535764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450102526980479349759953631214724888120659995044732454052956949161135437651275923571260142803889143997132062841954681968858841752929226688644262143406338432354490358718369905053470947584495815394054529883914651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976631553486672128902553534276632117995418894408023111712410789106391179138011169084156147104326412032435201946687819777327163070488510951900436345084713867267715378928165562125093199330846173552270091856241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935465436456444723004453622737526653145299219622309881176456806767139785437916584732095046944304384883707718650184325692701151713494961736980782426940804064500922506823933795683717612153905708238585482910045715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674190255625784771039687550336529962214488179352640586781333262159209134904418941231255215399597795265706825746240764954866113924814670065722771960249573450805840870221307879945435072556036021889510992483703313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683120257215335558064888819994902449124874438702696481904561785671518215321421458688965726342557795756265270062929784596450617489642530002109224798180888946251675732735002967714705032799875798996291279287466075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009797818697026014374214786317938531308155711671801618419885007706082881144649675351462171955213852392511041984108164140482204424941782795380173574309636944364950635187482039605091070892098443141678406446191093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037782118959565168922539341826350103713632115778121460237093669106321911883916952705363199942535844908602398083142987243632625841069153661791501171003458273988450230019002557747743121433421560910214256300472929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686050987180875128226550528198916999445054582528742745970634022960335685388694979938282801471099860087059568484121519647334347663376274351356005241363537190114791202992225315331886602515377068331015488909995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043329222039895064945277075532932299426267433298828142825568965733266786575619337195939080664291914750311132844675148739635772879342989756413360426581430509213481367985288829257251595246368667052647189839619635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638208555865392327654528622726648834185074874139385493074176302795550310290813677069430289701202531770184941820914979238296316560222983619803482040579523193813266546097213588393044852166287214352575113723684505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609293880438561539393886108000388931415514251988072813467570939331543005256903783714451599730234429145056998641467595030318127152727894250238346672633173337455880994354439500367756703109190940716114115405573408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317424731705156325348237931474944920069795480164682189884332759152807095398821268398936423181065489044804892768489218547106769788613503335244981138616373957310268025164231339411549810626704975020136128532716794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738202141054740140240326319645639300962185517129143265244274594414418275602144551534404540028743249577705844940809840330272581809631796524917350701494846684157254659289949476236370059804890396576313824027694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349531223031802292879599064050177373344213062743143128615220905180899239090902879120512231186846024133278609750024675079171260577404575292564364823259159993166445098901914614802860025482343871969033739870536003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185340057217199340913082088234123050761235269621245455084222401498616621573160299790401496699491727462378267301789409424959606884377389474315405894732714701696198582509128215714053085784661918613228061036503420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168520545880947623711927889907467857536699281423524704411716652528910036053775597355884354254237465176941851447073145254768769289970059546134968039738232936238998019862056505624606681310225203680548324843349695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630668799392265099377398846083906682082066230124612997303780115748296449826052470590020138856244146334105814533631328256053205200592926480830313212035078776629584645441891695373424281390351629291422504839036261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859755991966972170453430432731619357189676268639789788684438861190418094418582586957960263456303755247758311154311476203593869850737767074276510824819289768101338596997861434244300067684394207595549574076093250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244488740345224071805352218797147385313216889626028531253487585855672513707818686352116963311057203172237060467811950861142666656026580629084848817231556597264624249137466762446143719528456935221561844002089813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986055631748277847240137983474630972453826070078510252638166027436710934976867796097426453923241963379897682484422098019133054859645286814246290873537053411643476969647296675258300786930930798498427116879044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269457610646824700707679329111011960165468779920874150621869243525586056608143500705463657282512899089865298827626568230074377036105806222664547996570037627144257157725812686825466294687239956406509728324077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064577513081193455198291814912845765152299640726298338964187393802463224707363927685951291328962522675690312898982088924713495701429446868226555957527745822828429972809777383212732530514169924655225066614655913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593858604743995094332651136487754324221472663136485905777194353727858104371833790095179817963113508959960557056842175321440798955923184808524878083675500683459483934247832856563524764189493364922492977088581624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921613431838126854709402109279571879936931386000038468514368458211668002182820129991748092639890989566539405829588860028274480269991698010642404924265810759212724690630992456074216611694183897204028455317073315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591387678465536199985983182304514554009697426850377501200832133206958860197305121870854184388061088381433471343256668979262770244341992180768631001648573384040824075853991365579081178390854206293306812294729335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064474790566932331808524642956292310160051118640956880068052259396549137978135636662786584825404606873151675168565871305305211587055927383753478689080814844722468403352770000119125467123303888615629669601587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411318817352440769169838170078031706833636151053133551533095846623655392600802125833620966795554446296223486922443190847463919351749601595928620445379912792443954761912799230415844328912730521691240813192340886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913092204311596450429819108579944260900152451424283341581548822767582003641525105027903580048053428092302369982089414594633169359389907001555983506446908224449861971704430762869320144595156484877701259485011514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010107540013788101839315914880874786587879500151553964407616257750818635821793101172614404666888481821945604405137924883197154571243841934389672475514442366589364718518226071883638750704592945198112364117809723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987944960394947296065470806398245627394706397440640513789295335728586689990085990869067039434348708008176071405043256903200881536947167076099967808378752608107329924794981733321395318387783282359167370125831242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032970810769819058988038916181382579914443432210529156905787884745821110382660549894669376430572820094574075292533611636575093600636734985028438872658171072599410784930308130117586486115832906605732742706030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718889220352243226097231754888531728266773910375723710106739337663808981515842676046852036203672407891490187927355618076617558781815383071457220388177297187593895662961497505678534508134597659282837182367192431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642658923162207218966651935591627497955048009255515951904618606791880818722697029796220208880024877871779125810211789425072761319795431096246640197720972322610026863745530018619088598256565626527936608540782281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739209231890347396557573966490982052618777270846169558736145592952198126893316443382397314238472615945308852540887188657764022385105108797310172252284529976947617375824995263247141181730160201833111918112228135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296535965223906335742142020499047977949714036872153280706435798771212837235867186123284810142893866885703762072348447967592914421953864220121082077988765511025031152937169329199651538878042516256025746324085042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116219240336676403090783541455138316434889449979237557815875014455206486934713086498330073898088056894346065207348759524887381452856331188696637177260653929012996245121362161821249758551092460860670329278198602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099624982612448826291798672824976494874375237721882327023286078786741446467607560018209489067346574075767645525563642243021209167963726132117855243254451672661784549610873790374606632941769264634585023927554463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412164309774725130449522884992542381654379640699109303726768644369877159674558387881782369993907291362951135658592126247060512379920709844530680675102192359762580382091795994036229322416000214494830694988847984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986896794541045778067938189867874389603154930808754485087084139693776973877043177428658169640187113187555513983743414948043673850691099689283408455486588315078298044442921781351968165206545962885924899472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778901650631075864406944483973846508885441240799357171892723876043392675414211824046241390905429387061282390467449182904617638581776736597386933106850735700688392261440049675224410943938679474310473017573522143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521563609484108627492827688256250168628994059815893041995881642867887107620110956075974128723052213171260507160053682802813777234299991773005009432736417487408931931722894048033459985522641089298221544911814713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154522058959144056918656096427650852458957058774828812041326123928589487352356033810431400035728912378562743250250463650074389009557274063694944618836528666054372615245417220582983085096593648284195869616911572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613898797807611495726137823984153462245734739133766906177880605463474924802150100016241121217139454356212000027292737880906863891198335160811628709104432373070159783768052842819095215390089954681456048093477272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065000093202373656256754844374179931102181762310080201404616668489913449894241224497019175557649285423992397248206504152537039228810588634119197203443941487016575998455338478687656777347709176671468038236731340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496542515475897214184893791435027789414016885281649814395529829554011283072905955477612250008820025122725613693737437692659490087374604434475687479171702479007356271678183376663649010405890049089190374645620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698078827521309539908080311709187392213784736322633200766495163505108258978872205344514715051636392345586235874774466224273621281109257958287611916625415368465731854067726266281807464561236527057026139992916165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578730617890614207972461756714788535806936170019844579843509116551020022736519845348479824964461874462583047674648261736123338632176788831250491277920092668848423818185480897273944618069227465490467321094749474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450763718679986930718629506983311087556768767520957403143485900228811237823624226101946741693084249295818822909711597530124904150583934405280223506510308621844597274035293927698964695385469623728428517188700622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013089983378701351245239487953845969039342470609246933983359445142833816687683906014541970792247310862821685927654723364212180787384299729325758725227419692110088899483495642276964023114275391244744324195895104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698378481116592561577153522840427648249729162557314786408820040147197345096547770301284755681410163286181373244098590685626637160588907071996765696936955777186970008347826798465723983128062485664119583559466864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774405089409900945155868296661067096709024218856726351302207694616474196101248350048832439909968585541868766773096136362855749905316728342790555208749417006678209583055699624947773343363507138316650091609944586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563793589629549538010617350700506211537941161369245401779331106731368079062915857711534352906341740273374652512188369391593552057152548039141014116076073493255128653224200668287083493294702711238230448191080636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453254378255759009256753842261930842019301417055445797375197530047041686118589733242245538937939958889725739655857866212042113770585010041536324733806348493087817055660615334112886073767434320714040687517684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594948916500890635310373293460482081275476655448033468975099417337722730080088351386612163960876950803327744632752021123833663890757017365868834071432495737637613189023179572011933183468407571300355600358910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064578459525802634894053684852456612071352028218360912107282448603570984859862149911072056038245919485982982354366474772443187443625938524431934988597695084769983030114427791664023536244069488936433666519120633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453859527358241280822840514800724995059504215819802203211911703806022726228531527782250798281601848480446388454238187782171045347616593762607297088842176998044060036095071630593792353372760325679084296637714903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820000875492308382839802493037018529206223877098770427810125622682864582582074893745065734680589573571270244699330407523545448638482611794977490652298806639691549161945675734171741466566677615589130228517249374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415009109248226072211953662783562688880666917145514720406546986724461341839275466663949242227578726053861942662037939092649269513080814316765928250487647210486358393805609309137306920848388137756273064149155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749804085046227082625986099215606656776059196478661965350118610338730120681862698898317555385634933349620362545889058353970499641814143440022080602998861413468584239139340153564232472142530142859120565763856935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024278787829869814914979048998218102052906879742490994284322732392927379229358949375634604471174134618118763775567553171353328694467886633685252997791338884062520535576727452268759094250269880262302902959198007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807177485067680661100024970948317758504896131681710471576013281159979796697117964893749365801828293146885326670686356473845919381630061412473853884559004582927311830453194923750739495359713935327341573558516210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963782651073755036361644921669180879049103339948482442207474508737919354745696156441020723233200904265039496704594794672172322314104619778179232279689115160333870859699947512842805010007507936666864488336267250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084850329492415000656210226872992169408430237869071121487459408905047676091555973770140654311513641993910153221693197750605362646324562937860104085102597225325173092650965923479694992248331176811659480608800082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605373359195365861719631497006018216015116781644587779937232745484370216719698324035215895168535513924782055912827961534916630151458051788841148097186706984272264732539627856885621860135755148025841191257861698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927094784127391152433112925946400072613464924997268181094515144033606300528712881176345574744004968524233433988590299130642366501730923117254932235693646270826473653961470193614656488082366385687127431181462802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576779989263352748408957310408461068537718696398441318584611504148287305023118066959863417933895317469817706686635251177878445758531114952252892091504281574922455591384711330427158913553411142349566732404385307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269752752989520766338895811003934670501955027215254070784222031586900159951308263848419748777684991692392219653723166544757440764101009965061712627959017809881925888477927081016545937332535284128020075751048259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084476878971542125953035591327072076061508973819799481185638356745062572946951343691678918263066507952431155826364371997603774446201879101613542447700627364765654919626761644468077219092292908086622811295988492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757506758136412862878013776514061907267002330978458776691822833391651290787076086693751711689174162769080955175727969805201682102716262136069706041609156178870530540720979768493026637638968662736050113988988367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084320746942049020976670074228274667222156833863413023286091104602401561230498455914095239210460975654364834446150855037499705955336660221346260483996012273273641910694943992246524570005239136227333383284972755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067151875349808971433102743967023207286830105305585474061120710903593522245318973774892872122393887443165480209039008108108852669227724619314382529097258631124615779550275982207061668708048769500542419875562046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686206659734305152428332728939125107799228171714059172236020738527892642080373792927864355780211583575735835906020737813547108144950490459183211755301545019836835859869923267993632243604356246020284705006583453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050681014505544400083691585386399196405583027286332121027159254780491989067089066871512194349441699015818121629691645296566728882261734646998743806066636501254919352995156342670614836862978791948285828518127841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775096098390350012825128730291388517597460971546374785158162912190028421493728409410165155706168620646222073668955493931454351822662501773714797996892061206532527541841391447611392215213461406928641935582165447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705841685710882489400810805982436388069304940140036054058825147274558825823285297655543660060976141881745439506835189943064407677097341582749754334607411032688819736325102959868912713918327323940654677652057012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637354250309455101918511962299514032597437920935437420911843155116834985132549158654381928399557383125945367248250671147389629672990878885848882599701074227252504035481804962852257052082363485122693831562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431012869561072580528336315890095826698417353963848720165200490649064035498544923722942741837841103308077738694039345046633322001742224053633940752750598293574910869881854105227312991022233397661253324690730080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342431909183254194322747324115237704877561380927960483576499695368748511308807062476127325750376659107831658785768550661988397945830269086027019641122022573660586407392914387722598907407359876447331552706846619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152288473671518234944926548288571797699263163527538455765576440677544890668248996613455952180097814220867268863056429154013829653468573489967197242017176041456299913025141444752488487885952192226843723645329643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093978722139280745585647099981589429668515562704033660587623053403109834593229001269832269205022015814343028080002236580154632882552904706825073630063078118956871980940767158512610334401938296271880860086116970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926306649809154087581763402129960016194911103493751576558875248272142376797264256426977368198890882172269926555304987247904798100065046843426551930595486463515965834193256019953942725424637317151517635243951403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767582008669438337563145932941714551996669772822181470620906203497631712086466030605675614933109167359686926299803365159852130088802404618168331860877929665002779221347601161748135200060259895150218963264153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464874106952245376114568879231150886303623840717691959989003565807547270107199166447759227730658896111939427586024665729164647782959517792521728407860744329511315658116636186290447363155515655823373410205410970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727139647788555334050152578884671964802052467242449395518643725584409996006306300289818578112735319400344482753400429606559508922535186015542228917642946353097283905715525192200671822520448345695728302485815877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057617540712583480582780681238942856193111114132504933164260528023303981416900679889803737603209951643848905869936960683071012317961526692453046492374632284627990824233479833037403445017864480398812755922590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367169726545226546510614403820274351610225460111162195775537690901298148136883286248160366899277390833940514714338487476920116426194819239644946320044638474688479111517044843919386765303110082423870498152452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418028199548731737721290125242144675404294585540242390647170225700446424875936387663670677479620244276809437785482576651284377690093142098666071018702933859331043773285303437168895184802547799127333139633667250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269255703320890375832462846794994772016161849244806707260664239432321923207176003725231360026007938117888524025045773149253502497399425440513990997242778918511892389555672490883322532107988627081564000322527803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977668184401078167066934000751493482854055561430475539110533143757464229486209744679084475876468363178927730859885111355095794744954218629866774966961594744440927311320066978611380859054531762649459016781969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808619331909104357860720849673073825937923963599328475100407272793862627167044754075719202503934191972545189483117279024614049668955179079986910253764890964845981670901713935120678283957996122631197331491337781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429798706811256546280611726046073321917630474121506403020178932057956876051027752505304361222709604675845312738661652142419408683408375891400951141339295457700947317481168853640941835286109971034167235581786028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242689630053355368549416400863921774567695344586508832862982165846016450780000359898521290123959007042026607449887850627176077622255060639074531947718892509905810093672989195409957663353865837809804479353779918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731629586080635067629377512529343675960734271996751352015800873739548389734399012382565682907859114425882852136616920140299004131462136806323526508654112180847499875844111836290979089198341187537664960480936264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546420293097158563694978576404837415055580991884020934333351281955145551857333488816491676944277824055543369773119201437225415419274505976013798414437359942028760525557189378041148926125798303618380107711005004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547618425495753958785494583430848044173708798492674195289323031489589916006854228795789294815900068735373333333863813908420994872551172617108729440888684478508116345585269214154029967209886937158862322203314855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916742471899342433028029092698507522949079709443009238672877439362551113136287615919738324134916722682612282631277938117508074089589439719002542641266494798017644201645415881317601897265962461441391319206785035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385135293731080998594728151117365071913988126930748269061403928642276627849432955882859383721484750707783551198962249119558823704506458200561017020532484449021502294561765561859214574399009554822941375154413613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668293679259604224184594177065301954864394817033552410287470447311715070347750834323733311632587672763683468584448656253918723946082732471350044895708680315032503867640173531507940034557285503700184560276996150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667908471066310748764673098909147197987925985906257336497349823503126098309873468616273935805790735490824683049728409773238116708249151637346808705105219191762054169882625476054458177111799377677869654216992578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746695459092804525968798460814087071953425476138836335351191121441431485055201235813806264923135383387675809188923797585515732036588317624241169167523814588592075164035236684372679175906370539219798112659770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097462603510578981954076398706078758177407249118450697884299413834206081242839014881487259985418148029294922787832435610554915641091748877067067820119859109589098386883951171838013491482549927491426985525951776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342153210060175230257421223754210749591872867518955215532994532268942518840942282675774422227552820761560727710394718256680247106606773831206303146628474433862047432595685056892871626532908327878439965071672422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185629319849226233364318993090170488199525882733880795326588514493938124115432732058916457864229452684117518808184050956904691381344307784890211487971211628397734430548461498079356243549671412947333266642248305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688128903205385455639879921010956672982873047946610054316358462344874415554071338143234413117884241960190370286869624227624650240042081371350464015993472053275567950353390671272161779060302162399780418576334810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208132314613886925533494929411831638778899032594010934111572742980133181457828168791351424395578734205915614587736898808079170711455115476266168208177757472484278797129815482385203689591652405437305246672873130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860461684848240743838118074173422244839478939982780147342223057865410217729264820914094850350132241515599990163071478148527051614432258254780143440109533660239362642493138522940547536416836467041574300558372984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892752775284714477621892057425453151037479977706862362421899063030962822117732197082303477454550602385859114038989691666220778768326012396174199976236550636326601699066116890886877413337809195161497705492141711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868816359741925341341221913962874578109934248327141091782763176542096312507136692636588213575119987540115790280285078066983338418338266739455368319656571703194629336410927266727424499274732291380098357445091340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275161184169366255632419359158569508890535314121833662399878022115042456600150236469108159974192025443787361022671294122829888805336794395032940480496167711072878810316146773037150218352890241464817543095490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562436040357440246191237694402200760421433573387260392537246640896649147146547300721952927374176796135652330678042682000242307412186674866946280587887873829952327805010706610138540288011913855730911380572755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310535096823567161235509631615286658578590195287177546425064129849451057303533243348909799720945729170095878408322140440501474114381709565771252671577981709767638478642064876136793945784423858603564966446314013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423108851491226653917944817433904322700506874288819967061960688500673328353614680498596081402879119631127482546640437038478288400798157913445232101668673741121294496813451012237984294021947946916648150312431873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467817513227710904673001530946777306922329095349569449160116904681818272347781619751257278515355698616292202918847453026983015663874917702194760509417486684119727660444085483297504989078258061539020030103521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683150329974060928048310506255157226287131327681824780116915493786248322401723837072716088641929421181718564674811856940087052996113141059458293870330528629791882649324742017955124423294762903488349527229283080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547482779809303020219663250932909448819057451029852172830699622421954710165193932976937065457633343243325643313639122108352913555770081265053979316468149451341207512188350547396859555387809194737465662790318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731092793849169187933359614853517001814969826164800344027822813985879014862852128674617538485034806838652016807476744021147665569643873967579664429588640957755915419261507196653734108170649748222041913503522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465946935112856279759057800341932347600136961144729013113729326518877314672141074127522101051515586571349391276885573006456556663593525354509457378968835800277072108075468519790215677663559352535450945737896883580027707210807546851979021567766355935253545094573789688358002770721080754685197902156776635596085899524492722049775299815458625359295568858655219086203488574294435488340176616830553266024583599445433095297362056428294745396641017593878078757904014319567264450256538964052007148706853706562711746676157191810642280464382686780641781701710145579987859492981028674877471679017435503993169683528592116481487861286289116375992768471088743661617762393098294982340641378280711217412378342224144069984863288239240656377438980846317043398141901704177045856467859934941137671018510482883458475911298599113261806311665209771093260254577766404781139798120273962790521780796565933483031963863726360548172617544026268435726451474111436197474885328135254323132104065537475356091405133576448451265031599499398475912338676258998862826742421410656317028268420274277535478527849806255477967309562135010751357010814376712097361065693389811287700643950868226352419579899875244531513268435771252695511656842606249795300564134236794032686943202212771552845229455906013166300233297861842729369705425640895722473147960842279960643121155722898884134069015706079169855397062706949869226131550595458162406654276265360989882469228424022170510920884522641938004050647235141065446293973629500626870691857435034689078702526688990310590307332020997707019556267080078421417500402487764369382704966754069144895634000929852354991296996046540283212995128817182931733802589343360888639561881453054936332102246702371234907974068125687248833528018208796868376748932865951563500158437345427148615342497125226151780864718350199049932178199155353873785623455087143139050384328696513876903290534015238428243963913256867292722487084779696809273656042151690402300750173661949935854471440415221410647497242161523037246612553017965334543540889800869016307189158808455522198431157422312945196703758626058776263336684850752752847903442501653764916331792832073572043631496293326217198412041496939002157898758405506883631318978280327068182062011470970782464776027629635132451352251922427860447660178455463586895641834408259553254334088710161510703674682452922046780848531852956030260393369987912529602307327858469371627037491448388916337500526216973323321524007087580984856462897791809848253427212024812725655515050305700418119895186092167878092709372414804711203209275216382196930053667750846835893865445281522353475575590763802378521519460182724568236395490568125932747289545698934471141809813153649597485154106854609786330324864298777018635531367450811076763860473346402957688211528898135664493094931043589036451413175524147809925350591481309531471226234135406460905980393007295409692136945644985787813148498347106185885802583353800866348220745875475776920674100675717787021480249068099354034049780869747523182136878867192069420344186215299004686685357497787101475284582152153509827098635277035756293849313931604238871689907398239561898872218842061190277094299032275736687186079770707721559232641813601697172777407028841345717732062530298816172640649801780192696415503872932862487451156694400901469103714665895280769075063099165801904028249123963456798392695655715947613669438739333006837383081812309420441592959517187192492679792971295029491581185269446544888160644890910857473849722526625613598337391783194959915065439983793983509005174338788171829551618447325706942293753652551534711785761849774779733167716071499421452638170475227272955705001733744013560297812168718861307295720086827047281509944936557613530068382030072487238918604555823405676318762623625890434079602395529144081868873503916372993471628157658628534654447671897796640094342024901643410848630536408494091288771199650698045788071379779515912042538025709198604559673886019016344148290099729713922827786387126308017669213704934976904380819565618801297909146507544068453180516940496248454952518633632422222614586995009297904562688659703930983969560235643889686329923323765908114248603580354516978206769488924866383306879176594263820092637789031658270502911378572975097400493867535805163232169847363385841973520487633945539464273928852497451674899046514594738849778743657589470771779435627074325722855361014929296756502658510060032181461536129285910693432148786863743429770205982545109580541744556250811648819563443233555509154070228734506176634898004928111484860336673588052242980276245065806416616460933096583227741201687004618647087354607594600235537343636685846300082989115932174654321735117553157555101863096588560274473288174361764536559262461764387774037997688608018414576447643035712983995556915655942311745306594836250206036438221735440965535395090457436938651043129342716658105214647736285604104271523729397812487106059859320178075773843670656311350685930588860836202347780649879758531784016729059787657028138758026032333379883203038968539991452029129125226423489661976339718268106023709597596629809185348190125040315899625204717076766399868353153196608687529125423115375034755005153674068684699567677330577510792350490345778778263396473876429056401644333168224565090395700668568009825182733058190424322611289485184918822142539686131003371372243018683955964417346708417832040075715124168083755413148247924004524308125367729689704440679643179742681593592031358215146396789238533146916848019237856136657063609422132962567182221408537658070683461685834963756556481521327880020825169618079848404748675428648124718923245727848809951784920023813214950559768609780439227213656679143255838729396288555753189851339047123780845594071844832836115336157802570583643859337129234780510580916071579237173588327126164560656794503480990799720508422730547419077811064940216016666629509459324696808278858738268960848774456118379844865730454320536892684034914234508815351016785757066687495637606663072936364979840910528400845462332617818149797614121818728612686534607116650955135477832306274118114820717164665265427099148478807776892823457954861106715049473647399736480665299537367799934023532749648010344600085639769736337322294714697302776409407753962883901258246629396938987701586208937991855169330846381599653959133926292450056440676097423169030780271559700744418327838639200591504192666472875278979549277034150826391547896926883308166047956420911237931251245238262891323911425925924887235313534140371673379930617119964803740766444036108277815093719892667899588375052554760929420018430744438964934968142535424422875482634672599399787959797254722441172876007712608840939504811921596748873955586267106549030213240224770792652497769449552051080564104822068021729276356152237738510636020972031378948389087608773044443391070371387133163749092821549212966094355995765425050659702392398001339719254398835335819326042355334640709072858048652141533903522297060471220130494123455357789547124863000470556288945504460862226648523847310733172230385641865311802179351207883678931632431925806448500511452822769747028812975567230419389696691151684034252191266686056130038452053893369112100812050252410879522034623660139062940958680638104861567034918952889959443421807536331295702241260765662837857763105841332497008021096395134916086420519405513798037382651472598999021247513597282764870480302409576924624369255111392235317869482928421855572437473618265779560035189015876875981442665762658258377735379880116858111611885458719903282377257659747925555015170352252043295945668950459779859313354603058046287121050992002653919990220328029855134990558952962035081185191162393317684154510610655162478821980694146953140216385429484650993057590184254772587685764147409170800507658641633769358146607818722445058379424375762870854540335011053709267102160168897425190172664771091187734019658761319238244016778669447316036433235910530463926925486473405762211664842699383303050481743973119350053676164505084476304732563764216661398181721671531112891024558516207319700700311254050520823829089312875756421875416786156917970097009380501429846668521200159151132720592321337362451009271857273494135289481232311599234615896909789674454130627626872563304682335313715965130004061533200562642138432231482703547358635091988446533835684004841684653835147529872668521047590091051673159246264853570708194303523598755049297733307531722035573470236517079315932787444549816445932473938377943652780031092775354373492970112030888508113851103629856205948834696156362320828310842502873761364128467264503679574982163446945992440232038663609579652731250489120123599962848087517002713559088212824459212365972636236261931717499306027800672703852044386944202396265943071733875448439649357394016544694254389183159395967500993298475531832019709586811147403411464307749078732347323831843169775800695104759625347803929053122789720283171030770441520409620275360661687750953874913564865489935285108137546623023010441644060787433799388659434319739727628098872553596421836886252528684292094076693531017467606143615040224106100657518385781845943097381666527422822359523265631560043634606066179929543426812782469802311078319221754882824844348942155905096249680955168161417840810580681730090026315272179607472345797447534390082662384080704887676620125669754226324768414436029961270632036424767255662395841363346696342018339637825422544743063280535146449208028401169350717192513434491759163446481547381600589645676084057980165902557489767118772253952700017838346180768335742506196377939729071866416577565549223989511605044361810205941685054187658471590296259403076771869386054624379389529177382974148463926922111853547905990950972997607473872962647276052104595112827435631270960595023755731806195452598765319888191583707806094607301046153140796722525757786092730919024691929884517398716315076857663518649379762973806603165031986181720651187867335919765239567443188879533652290886520080140499811495657664501357148699739221946031665890119202261370639549215000080968080493651561790444139936547321194227076271680662326799317221812574576091524551670509765492798757928496616737619368534354686042600792782105050293510602699110772925833223313894239808716540504631465861786721994997496972905979157918464803703518738864382027060980493400455678609307653826192652631811202186385925165692586594832744831643461459403696172358059717958882905838152369788533168230133145229299915405923022740585503740628535904597657859645738065216002631591774288812480183076664637707719985469471432460415430871067788218769070796941313678460577018382839283094791609157762283512933081599452697606840265942339288587110544086830636638581020473632094496534988776275786269905353915532791188119263351069193127339766674091486139745614525452756883805182285266087134963283884183684848013626458289540073065079156074102889083454659625380869625526263711592359482638454560872583686037619817067263374481287637268299887772294454040770678994016438125002755420169830230695451162998313431071889909862541016002935524415486259137615974787091851534025688881301989218844566111649106326888324234483096288804965797427103408223736673828255772507677153051860616483063355980193407109897163098840874672591044598887595960530329248899363852119394909682837108645713523456015804386429710353846683059689879680835873497857626785565888383649516272354520708779533467658672049161720879813149141698913756646454569742166633880288709311596552908909685832466209423687259552095876586763964525810627609539552914917651817376729189876677984251192168075525816004692672892837696502864920879878222442107140464673074851974371397605307432234515525321212358708516162852145380083686124629515480394533296837736424862964570243581892316862264994992186349832468121494673751199481950450744965970432717604013383552223608153400047959819368522309258814575459795669694756238949572473252484866070654288256287673592883976141961905913290839946916384100532188918694325657206677652323824731643807976960444572969446502834306166522169870802617575705124164111092073577262039704116888594037610584331302931444829065955684296487296377161321950732199716414417025654689461012703082459723841828360403116603489153716076232863966616561856000946715549151974673084232558676741097334029846169675642107632231536789799885806831989228308597633750929464903879107437077400846349362362400830084950073558164966916759777865808111823047707424696436047327935182038471988961170359008300455685125280509551066769960237387823537663727822677405205106153201899838061149198595287500266294554227352605814894880997940795238178862244330133236455432574103883704232398092141614963275539566361768675243817655662510133743046480820755285156491167182834541304723879598488899915627591908215219594535894398739198788544787855883930195317034712402500720728681966631889154092375629824773736358962930373027486492513691978890676358246153690757238118890003868340893039793751993065381722873667753851141716182146406300539934079367210950941233283505714265283194967469485021225058627404548110939587405372888096652279949131350411485737581899491522734135204022017717426975610324053900259385589578491549406875910851090044566987790296358999578580439959472228433554403913845515754590510122367709490042907251632725064389114149403143929338160492141148298696151260756811930048851604289256533437306862399621812008375911431730894419899802933772305065225027098497205959635360606930155405423580935622219990176155133694756828973901009351898868910230562033456067478159556373737243150513104638843684616602221058076605501633844395133927539050471981112677893784252742930717142873760554379041535781461948559847060404010163365311893068369659397595008458513327284730880048487740393171839649232121257591559863968310050334405605278988766114724308920739067717133448999590499556528668704313897455638641950652562633820072560532502544979125893728660693665274756954585549379365494669059562648221660110907222716643362714785994645999926749049549615126423085297640404369503078388756766522322785359375567721700544176152275789006884922246472581006854831676168705370471402932937942957597129456134524552754565682494397143313858049509737206075394125741562910110232605185216108762961134662379674361123425177993400596014944329479641646003108837766887059200488620180196337697614505829217689137668547554193811607470643646183550950427836763844727462071613819711917704444879751377889228995884738200829650704622312728062105126991039445893607890442906612891216488673293277124505955764999531645688888539374049657657168809130392423485693764450199912028784002735463631080280488390398644628663159407840102917796877741898286222270285329191455035549524356674461195336689703928030763361342278481300805902452322986453653475937924700977123725148559789622335055037140823738855989996357257681528249857323029102096633655298097518691642928076192749832296521944816960437154884759085527235864404802017581425754005293438794619643196734902934702696186973283056021266285835941429141764327043883997140379848629650744072265264163463428982919154069458223840053228719781301203428465115000214159693875605989584674337883215104458173349102931408492619625443010694755863267361339601315493600270288226537550169131948172167727277488797907130864591251768962270234348267173744476254036044361238342663685290979347302622177434409361004734383259470556179624247014795775993839612828218670404659473671346740038028868906734350560654196291543982323319166341577275777262556671272875677647403587825186324014293512309926524186105365262390689805767959009378267212512205511131583478239251417189326668486967410493386288058933141258364873085596852364870957352273551564173160005704356833751285864867987776268789119701741989262975037390169668114553105639638913349194784911260028872720224362955411330210328883125217903860915341167857762338801385636434712302531331275834921496268168434618056550643768648443216916009932979358869713263459480476580167302876236263754046417737117123337555290761684576098412031481490671265447881308749669265249507283763395824831279554241699844491415609082123420144663561151439878692836764403819999607361303565876406833411029087823685230451771621814804943262467842034037569121810020485713346838603164091890493318702825651133422596513951836285179232653400316253031177685830439058553031434700094995404289931062006909384298598494625764243642747550200929598219970537138567540242399582249361468818357839052925627662578147628254905215311884516726792585106299641121890474290326898290300195391955649073481812466843389938765229124423119814574662009378080796511082080920250037221765646622654628516780697561651229846904028763819653602313563613649766389022197923617233885491819809573522970142320454913947600203098311826513470831957908274217797322911001498110420929199727079391310541688430564766806828814326393122924847528035155632827952732656083410881616979610239630665231004370268230915339990110185178408534796664576963995643862325907256630756039470551358975851270259376353252345454607115787656777517132314071984930870727417259903834799083775222662385016189000136966533102252957386519369099362589633379104117758605187819207087776560999410980515517605243383814985788441580214830037738072942220576114221873419120173809741916039089694570812869196186877182344133397780597593991704085257402459527953589551683671046122414148488235070420989494640533461029814818149838496287485469500407432484301004237023770269359497780909390095551642812541683795122263408103402400601731856228367117879128635057651221052346487547089228654757979919866349134336745731780800010159228032458041560620405881497336905468838305683111885642692744666825628260569318271149711079080222167427372520560852398097051928761728182949170796810849563420922156800522265765905027081010596468960041915941397134432079748752006197036214365310768194923146657468333019425617725802965628710574635667936196429335090417591547605643722848231520544883264267630871114746063603473283432300941904208674812321963355980892981390137432172319029440338021383503784665824784928237160284570901850939986308768974636121392228744643728222306898144271080876739847451986859735656832475850237902290438743386565016354309204949751394651712042399638048515240438271400499873660922159516794366552097162467190287849723430687941462209330654035151465333534381762121409749952908133436688742196085463005629418718571989796549038922609940064581345769898902937525260315947935205172873837166700721547961956375740701285592607563335804361178569570327151086097332660021100882712319916375934099712303202613810988996422209731755274142553634130615972948437204856730536334535661832196025697236774376640419855390845866547731334424306172126008629760529672078593225622923558462628463331892928319836100025921871137039971505577493204875978319767136286320184428233653934716363794571277158840984176877770551144694652404220885382028249892963950846704657019347597460108210900223798138939388917366199587023532221962941499139604842992793411658670487785711133726534928566536892887508962608405860497308118077965006010068109796230455954801189768566196762423893127565241655983194566147167582205720515073318743864995920772921715411527070251573742932740603038899701817639249284449614498921199600874145592011971106191781356008311793943700218567880801261181157994641471730354790676703916264480369152300163809750954986478577153019332075870767280738241627299798565721981668444519311512147215394626062415474788449253147452223428981444393566896520817283520184910446850123635346659443910177128605907892320369817781441406576579531416934275662744275647924957225617711224415082059057260848147140459239530795970604271724592752165506005137153967772426318259343164959994084881348962944398019280504469903074332958696420234779944060855529802601687627459481652470013204750956993158251056595655451124681216741044189201497129170591132046486929952189360787257198954332687027642112079711125806343717907028536568681881306493152903586491231366257190281160804499253317309331886197389137211839634887920380921481773975151215550607142123784782495146494932858500089951732313341794491957195493738102251620433558509640442999506549482181749182982098028501613576469799306791322247849851295874198976234020482642870620205113048454320745643630546829858997903588405564610067458997230028648958952414533037922186076757219603000199840534610423696739484659819890332264471364177828858318615641089981063332566958801490875489118552944475487777070332542816540487011452902591625351980123874140104360363092052813996081857821750591992044407167990153384458640154205422766039495098525317146476566588668145884224627681547177489770602016193969477385529779517920639342593819635523803884248395810392756705640051774584154536477920170734268207895378424193187181125134001913549075223018853664245615188640302650415206225875269746448305960600086648084673975874694031004430507110080328575618526003370683321783410069730737036403212982503954591566451625180163585488925018864904176713086234741645120009780526716591409458666952971943266261362755466627639747988313242076600247082565551686346541573227303798463349743541760533911805549584851710030650471465709174000822022033342084271621025506998295166962322792052067901249991059790172386421758536906421361877237109133881499560018522736296536092063731683978473714984116231404795457163102850830964929465614289077736030956891413757372422008431953676737207516723402117432726467077757072056644653817086104304913019933047479859635164887964619449295289058257309790409506277206668356944279880549619837512732746507601821215205334922080851917626617083613572333425100696831041782079718606502797325776115716507240273651199086137670389886650327557743894227581566173076972183643680194219584768114175757657802259412293693762854837615011371209444777267883907263765061893274494741092640586931989590585599696009720463567109558642594222507134228108316107878545620838655268622496877558956742840096517078974399836452194028789699296768855225099245481131679811960958449994512830174395658645542534924673319276992922114986442884274282189623437770714914385776080580848564273037171353764245306793786945790575233507643881521810656607927075157252883991851571052600561883391085362212756884261536867998180736017087567364217013332426353061934635454360172603885525567745806213146382054889977943799486592528073247712770153356672430512874551113052270769226215106526147981396130120548259553984982903822165854000278718281794527593457598160626825669353591091970253175878958507864251238169022868440885550462338617680937438712550030627677911446042717502369048260534968220034680627979397528237235197310708566623247325548156691201846615653934486047540357405735326497356594491899073616081176313352491857472402949142219105534669423028663739063083795795265229165823026099765074091873340013305234310103037778507875206351658346277844835368366559027055834947961298350561239433902475739693050522951308110467091324988204831537894226132235566343098114183098668476810282571550286827483833975719258734740115366467168262937015526822442127711052390917969319239127737977176880154224688349620140099732275759329391772408646348928364644435387618113834143988823534353062371783603772709222067901491315749461235248649803680609448488571989384119196847152483689960814722241875431733533374236949008176264368931636788534545428571396360327509922895712580324146305634287293186997117594565836310361683515735192411529174585686548397470920699815889999713360367051251783221658704694156520627129418830367286169732775954748983270093376170910380551593860779751831647911315109183280127525159365150488607939884858609930811934938012778967091084784084709431548945577055045503618218115460265023335986626211907545728433334065465592365267796790097240225590376662770157178745301067836845974624241194146092702551816535744964080370763592182048070317078004950305152791980468414802926237591441093882117584542230025871050989743405380196080967060017294461315943539319021552498639177030603251093959660382062356444137941788427652406438997872152898548739082541948112684974003413805877029331600234975233143783250683468323902948629612891771070449877062308584555830072538581936999562749473165520895617944627647768827751115761470499019482284323868027347074673862814752675333720121010716466861961600633771352137821138857212155477397216933044019471665348302682850980553100367604179853359108399121356009460421182548283826080594511633337459993309854009095675531282250406764600734126635440624826166056357691252799813016159259426864869950047247753327706499938464441139295589691465220429908122439062860004650357381269521702256392168217733673202091586750450047889816870364609615184600485574143988172609738447212746441954501983355932317688295578306458020898295276315490735500546541111137194763043626173297859028465131916146665516766350641193345758667137818109841564659296236576908362716072233814788508550638863177490787234919198767989674636254547126044095416819779922071042764025154843319647739055810496100016470598951578529439919179851978060893956786471973638900985242234000544223763116403151864279380217952656842997814288383213895982439395887701557990783944892067091706552034967699860541559021057651477157873786751371254730446603349942396378779627117683623689624459677644019969786930278957043516744315098022898650128774540393407397242671605002558785498888940993842091001681738748983584562893527517079117054900054362196217064294043278062798737866767302228520183704159213524224275962837503729973495914312511292396853190129753561162967230848617432317638929881754024703915228062546847910309796282934304213394022884129310475940434608356683432324956136475425798625445544988963516713644459379357350070277317673488451748870996682508104389915567709984887401788299074948442331678830180605973715188996429503241991398806477821402001041117774789688395551080742111648042275079877931031511511084338317728872525585366801323192752339690786930159258085241915908837680453626089750834211044419117285563214646123720291167406146603573964319013326735113831808685442753061156822006420507762762431630907633957468027315291779908101253549436125914719887523866639937485253979788879307769281320874570272961219939081254625546254109008343052040387108383857226421767563029049301769295115288579085478954134272967908455152662497710743422153765699549216931190035675588797196959360894440560279853228297459230057292902250191869049960515196346658738457662861655837092622954905255871509887801915359854417167213573070063569746236645069994385958653045816955766814151886375167295828551947025681486752161213458539326242521744695255070076927008328053505369516383702482620563452119086436094550878637455568841651474777446606868027320905274568175395157132037546217069826261484759071069250556887184036300053051386810957538874806334632999487695537434810824541310981083736907075104526381461571373620350563741206115436983956431136731850971749634340583229072358340161829060871658710160130421591917139023645897059027348156810722898671953025796837645639897187692251759331558679733407737330432167556539107557542389161607021227173759207005630713684374782121352889897986682177628325725333451832303927476186540391920879656525892860819307040357396420809893210894322008519941676117175273539788820266187445622820220531528314278483033868602799651751797558198833310256254382304160189423391703863378357921032037786682180618908632648674196620083453772672138030048353496696010662241386427252925300053729177370611623486543873603335731512271393004752577030921799026910568336986814700700466807131900900638769068942035418676510749733938247585986386289190118498516056762720635681836412579224498280289965361861777668677814102903988473476271790234863835367198841815377642843579068363587905670058581213427848601734299273114985258294263813065849793217196027188839888813672103025293737306872842842526768184950327932957470704537523032086408891882046920257811437470677421043931464527865896380704085307448240780539431479682354362054098652425446130960956897299253200046937227651926452523471043868061628441502632729061257192725776763140224201856235148905903061312244081943896347125981067222308073624874038823446428048391759971189069304948686931188157335894633373137830646307582206036072722165120394083173607712722910894553099727713041310614156773024875503030331197459367823569692069290086840655178435506990979613012085913420825236538319721640025784386531552685180455950652762182978072927001626238075398453178749321457176744284224049806304873363455955714192165559906931601168545680475785694458258146525410569094213041518607874243640505075700116978451599285143636331419198562203928363637698073696424802317505295501373358979603598744425903636907172462752084031212380308926131880232071030140461195590396734783221472762103942851915451503469923928686060878948272040131551785488924211858750326012076622758794866107806199431669460231246670036640694569880337894191692790930563800771255696111385511106823071862635087813016591596657199561663926952401328193712268673839971023130237186061442402816750002785237013297428005731412337710767305263002918854321849520377262517251966548985863027520198580555286556701741242478139844114794561403613372359291002402880016954282527637001726055817408445343080511456901070920068537510749800562299567939370360942165585240126826086201398966399798182668381464268876294549868698695601835872133246870517519561716040850360702192659349072702510994757252219108424455952078308514342748979583140906113813687321865624780519973309894011004757071818985229378443814143454127508270984979196457929208023550364363535096012517177168056554998278836687203057953323354892273581439095605122292942545110596156659899801588064005422943187694927076222111028476180826159644660270430972905492918095775775902696247824342719684252106673708953912879269571039131701552419895665937962888409428690519523491907549396833743385108678868311297484077425614288802420254564707508574033953987674644706472412244050841574598773169274280657938451080829334713697457317170780121504655607730879875787050244201825130662513284579379669342674659176754473212872979925532293956541582868358625639296227016169581436104796463370168169038370025573649440139581902290259043029179330141319851960060539395930151180348550630214863817390059278659377962839746005016600245619242505593516523938993857858329225917116476018331586739589226917986771992642677072280445165745545012821713074850073677934454702487148837188476688243781859855683230039182925072221247233954381450812495920572738582163867174121455444072000774625667799993033885814383952246841860609946505511749493126247475454114900899298880244751171439414717156204843166161483490190460011909296255685162877604368512092217653725203066326102792604571211234638430897691005760760382050626948945183133681297570084946503627830445034242988558033635619845445054185239483989082514808667971595308723718732952461752619649890592054696908404522519746654776340655367050839612952694377982971982255074008724675796073755929885119227004014089922309976925072908243725293025365545849629334370195169448316009981695382175397508939318308818349025619452689772640110604134908045313145010713937697105463476654293873327884965077889115704433899875968620677669411702353257219697006335598012767963217354057017373873456002788461555755391888881901579378055441731521247110485252795976660872618979299145615755209797040480867560544694283122745402563321911571044554296315225230436082636308442210335683371003474828646197343120322024724439322933802978839273166096657341966481397117329057631860775941914189828747832911366843302535292524964792110196464906521782428021658444801194148375608706264682217052788555866609397308492117248898807055295004138866907636839943008188779348037755411804546951933743693074015004386915629027469361458814570456637297627949440616093119931117418045204492835456146997128768235017514453738928383768007204168069639536492505786930809325864323795839791850836678526870939433960987834815131423664526254152492755877990653256163320812718635364405049101813148648797280648360849666502489207356975362171904757205540792696638443542621309943524325188309713530823407873141549480966574879196207042981321762437810817966000036278059616864585833110248343312510293526638577653971473510052211816165672635135384136775558921388335613754616690150611753776496372976412757297961854600653058815433746646375024676618736828601359389979661048870373212998988077189303455828424798632586508329716478813687836934043158699441584056073105170080740906242322983421483645937540666898879902452967750380630886424623540006792050169402576684226733377623470073850861041947110699435804534455704891685726842546490009371256247610593669638899731278465862443799144139951569466810839263252231819117286400745587634104562885751255056808152522939279259781486174754526947763804476995955050607030405723074802347057423446724103122965349505065170116543132428521975922325039634918024654316346612918022256977140890212339328788604173941013526311520369111453920038754109001217400800370764068065824627805087557204105425815704573154793095847220829190461794537539554705589553490462381008166373194550235848101992227192912016177520244466860590096640142655724768436533186703522065580145891365214214884279565586627059338874918786393912310949856121262994129219570550982159041459138611252665621879456917858641408418466291812312771701856076429841403475924859795364139295700295399600044765241741180636090891070329935760123567450289489667243683113234827356381370078481809220454448786971363944071406838108537502379067925491990743545391118754416978797744588070612794679102610597267850687549686191026642898726604155400035593706209614687774802119559012974434756190369015032298765074421165940749484642116358360774214267964398310275681555461210571679153107221777930254573228745372929891949546444430214743494433991526199764617560500446876141445197137848176211789772414355467354670242507347836422189788430240648952846314388163435075296533334782074398744784424394834378621580005295941201695844997595662195314594638517065744940644541377088385322747539546226747217816410785971506263948291174373316912308779475584016245243467316076527923038336108403393227859230437069614233618515120201630037106473392360159409348761413931578014737552099930571439690936141780868692008127299950126894063381545942618042524870705529369512012093385006182670089611255740262928428939779819953658533467689013525133165447848621138975793953376384770437896000543746315267922612655403500132944795933203899504403691234100895651264183332718963511651306511767120225793729061014842352467437854740469612582211063998326045158125475467792932216010039689183516686733683039313629853299887287731336514009920077181159495852996478186606788956873041297968193338686403654299825024897608389872787996832247994861290621538119527811750653500768127034638069985321345239607040850382203113837312467354408540035498055988976284821825502984175192421381995295183553440312578431076669819823628904985956993976147201950407415341828849716367955572998115769289902945365175441526532860972531124706097743100642810215723199143928724718284093996741383269759137019206039345242446281820941620536688358917458615199461028929758611633262539363485791650895497475561088704308265783353395487206043619313816874211841752981800450246240132138892154135406316330238216156546453399121918866588028283036730994712897808165487889720625876819014748657643264745543586479660505441931400783305815766575393391766014969017251101351930327641254379081724668999981078707432988286063210542872923068461896542162578575560161255234030058019732943125553442148865206998097004301429834507905380923445824367943874916281483401529428782991908462113223908762350246378918770122675476308791945324149114109125348773470452902228567697375702167027235152036832281449865303019336247358246400226530178178623061318267347574556271918313859370386942322406078341585617375014810320379510019132622268591620758399992841425836075502370367514373472500610845652123178206902693232717071701807175007667107024383008821349562114209666627925762947535365612231196303487297992396129561001441176843099144359806556684733183771111489825166860528824315829668157736742930175053096196635158767553864128836864640168032901020983641453901361820123106000007757966076771445323744903666453819033035659640537748486377056891952143606796432870265114198205871409962188495412759055289662717437163787015463118234995808051672638789869011697057433252523306688114102309063716096539338291754247405722813182485286562201408429483589030543317686693886272529901374301298828533204149259647248708428870868121562155659055520118766992099534928858695129349256205885299759459814735055255033151457349813024963566600571562129412882016229998481452915802727452943367134613398954992519726142954671341106550874868735678990505261841864946700362615455651785900747434683022033530621263319828205481038832943772784801543529854234069099151220711408191653284216286828263663561083432356662184583496584243511408252713418446704388546056408915331118311239118605398781167627676137036584284818073139200562490471623282329910806606066470626403542859190079697347301887058565429921291410650831050249211811525610063742292432939047324285859043691099780873687016127156576086252725630413794618685327159089484682802764387819688303469013986309935348904399396141313859646288438544854517861469894836359302502333888613866057882534938204297542053481966053943726434779791355298709044097516714256549173418657402833105637868993037656181566235182047554994194349715215489121425206470792904376212845403635654004264438858799154465265045884415022083481899808252376263783493919299087741863311950233355350795095501985044294646003792077032647231653837167797632255104615083447057278649843104069195521190290898190955066437540036659891571296690373826058688622094315856762141694627700344614655883709614541838367816532646717988704751624200276984105681049934797417474275556623834482187239492559872480817902886979178082113078266738822717569953681581006834944177014110353141107098279679604574215573467737293131835742900988172510707001027056816105909256197738725262954967064382697487631527099633231538978021419584628370235855228029775802140619125039390009549720689692293515487099579621681865172941430023651007141027555894312623499945262174251834073149518226654136707112054359504770529840551641440823160400941485932276718335610410319523348484607952364661069986963176588502819331709092775438097502969129282902871827186867656056560103883625974768993319181508684635102020444319141590772364683025539168088913774267233213994712884977597953977347922967893621930992511200663011566173906575736837676365937189211422368499120214755719722305574100572545257245385556505686460537112268226795019296310394584417455806521223889346737778117487711085358563651048040070235138414083943449149587336317033745247442076903104658940280706520404901026101806307144095089011836528291001042631126121723016073039142782998260548259374871970789455908633421705653769115599133716964152529125865507192748345937113075626822331441930750599400673536365037293550076798042151214351972532560562264394541411316747298778368714099675896563070199695608246280145049119912407121857480537069396403892123464697871225506696069651615068130060629410740080470757013091617350773347556487725473691225215098135033192993383343821078855438332361873569071608054558098436700574350850753199409765965336872104349332228061883499200482787381125275030492088881748464283190165396006304665029156208905322947319996678910429991774534128768910309099767188148030932716269812365720604331596496493420535930974995546353415998438238620494250693932014266637836894812021997614179860830589838293900673951455175735499971707538924803152941090118514926140875944737211593932892637050695832991810086208404102864899234632603456423704248242570639091293808017046596536307241449281837553304794862335063366363758865610589066033531629111765979002365301217285753662018901016498159777247290540226707862683387773011170094318514035776219454816762064375319687841485184258934481405295839963849702539597621263597859456691106370601332279533419105303795404259783041376675167497687874652996491783423364270007454754819494713598668069156666458532914903082320598902812058781268157674309307210176135822631899928879732309320101492321263732671517964955489689247766118431545671617574939384016165229078440894231508766870546652757932388055491266616937775989539255610804069381182248000513508093720466860200390550091411653944819959417321871903409718825590726295842837197700858179418507010239247599882896135737787564358854963425611467807833405187109513125759999318051909219022665615695039282619479016017023122433057544312606544646250086866227480438667441944201539426038115578275400004040207121819013157464010934273357483361014694036854512564432034707528448389317545617646315722092878102799120290218922382824703505463383094194477974691308829245720502922062498555235510565416430457629886417680620174113480892342272883474543201198072660689569258822932702454477534721765528390806174300254282815982876747135983139248677545318468446083804815081566354194625658132963595505948290763301068156449665178803283777234426495734762093975759557930638671004777439340064983405507236218119894844821271727778513899568490447627008613126978157757229546476033592735563430185152565958292013820915022620088003174972853899821503906535593312828283530229104248499101040960080812922737134515814582959625143817175466341676306580012467619302739397496828271609649437231135575629078101961242402981117679826186714048395466852385580727594056093297312405555373044799293256493279811483183320213731115623240409254441936217129357321551955582693070362086939103095626257928849446571817529163361050844013855636792071157188857988513496298042756138550082816695303908698962080290303553800625563214036681779081802116484387794827851293781711519531292060253499397876175464080018854911265094773779403380813851658217736547421223193282082698080401490534839550396438927820292472373482716964374678135415623079293493072403367516992521889224056696146996814738788518603142897635379762432426981910159665618186293922048809589153523367722568736438466816976741773574492402773244271852172458249037944402883067384456400185365607465417560537108254681792569364696441802072207679501529746750838413523113561625499529176351416883845818879384276920770036330816674413405717150430764455055708620196218750902138849321558849314636118516681921933331068710415721922258451362322199002670838022234873215757971191139682680384884040281459269592328395964188662679614930515982037118628310945019769133557938815895114153272504224953588864505295251885697664767754064198964612563278225970170233375585208862221826002853592814463086109070674171612612300225306229432694397803268357300881624868449638061833812906317206669825392733974004947585695873513934547695113481873226417526311905776885921980237320935229881724959823218020514164654233174602677104795738569517467260280709681525043733589820550474008030133017558152271695309675197201612009205662308775428710696458634713742806675167831937351325652214838331736723081198165342239802624743765589476756921634368776691564947998944908953335482608637982325394916672689941674998347704699021464089968375824950582908145331422006226370265889085675892630506217725045902749909993279197623786666529191863955876879356638777647427669516078960839316235252927832503641558467802461815988051429269144069896524719481933963231368546341865090928413827172521695383620063230092109962062494250608111814867512981608654863784916838914202440746125373499118074444680045657807234762101130684460779794221320441751848161601019084311857783736923028533939927561111606255009383801593115111359078521625604853869143238122459042997729469643222737151895258029733660453560070753438041266967058679143693280921830411392517937860772590433010536938605645312282575394317372233585221168154304436358497427720836342278796178301536250280185857848442597198671328342485127694810821482898998745431722097792403608326198732536158595601419384136517625882323166497136618714988209130428155101622439116045249633842565407862054039684759841372950931581487773712401871797783804789899494365429776732570157053812637852227469724678742413007936423284978184783841870950009202723276546498176971856311594683012099715472735317355702526409742948625381481400785942093756263839468673716324465006694756705315994726878112561704600640744455807429019997012621053694428071409221661518213079348698972837001195293081073666728548798578714822353168796747873575266193854236240007139113056755503388529014237718541648922941556716384588614111063333831204110852764582840261025555845472259375961872346364309939638012344489255652989827202990036784391510418687495824429546262126155525198674509444652902219649632955400007038521056321967658248422650733125362054626026868452266096888043838047437262323316166601591279368819959405025719999329176733931027100125953609469437966385968083266431931649658496339772919441451837316675736885364518202302381482637706530113911289136913462491327912603253534591991632345277581424766602795479540704330509573058571051219829120944316533594324084681380748875387297085375441682806609884935066699637289794431656792687636706605922664955035210430834357140335183877561742096308666225048152511378485882570025040515838618361645076359197566456471215061989852062746107207788534090089741333788845290560643246783723784423811624539607897311433337060960525973019965093743954562466866281243275277881785764509786865491389233961453938720160995472773168875997332167711844199589484861426103891518757536353139008447216715931361056590552306882270163900604646542371934043098508250773501548519931747183573730449150694975724800790842693598291438309313898554875494232274494916279219117441681762258515329230906270288626273271727137367472885363862123221521565981401434617442086412238248701842176211379848001289184611502913407235104009968281635515588496259347022842452965644631458122087796414813974052131898287854284269657822434892186212453402142291873824879831283655208388110223504587132896511975297239395600114252964021960676967957581479359799931418498120411115428221651323925590709874816323371019161139791981311334362875608519136823562637758111952015928301098024561701102225736721118075378393997056197834785899801039586427329468431331010946879646342978777226821944480569992455368546016753353994086181176225929427764715341240000276901027411761923992248717212932198828213214581558330810327676656821576223286102357888866495575706551976714230950420576201061600927036420023404509720835648577181668241511926944850681518629351905611712803659267821369850750877498220731933486197900725897758266414280631975955986314537097065477664768007258785006309940108789455470972063803894836930369700269745829254188935682769767592328677671016980350973276936027288312103987040472950733573175722327139128868230896977588125791454937934298535944730061655931505590245069290180294939653193727641307597943503018619518284940068279455659277338106214901644988342847501530408357214322458926520002752148468861352026832020123565045190191187232355916703723297903459787550694692772157114718237996680746390722945122990853465326174679733821683940916461117621210756826473382614614878022120885461094160724950146164718017557452315757256491655201696462797061834737046196119470719316611275377707519894464868916112464067799340622219650686591370531036233918759281965741610783982987951386477074064514224493029252407623686643359498661139330968200431501561171744028457058929342504889972302803590243885579715131545883284619046631488813005446165010619163392539632499566891885581207683296137502319540263309630469405124798684956587276452876970991565736177473391905312486844946258722691209550207072170716218796791877607055804810151922950743263378200279183115536826437678875799119811679688739631778145299544256657730927567143291248470230227864752245335402514079094918254625352910143935228966648242984559934255755917775857582423523389737474844633400472593135729262448398487770176548131880669706150228893096106568820300579282477684565057591640181294558696880326458117051128812605060822201102948137886762347888324825282503946688656047914724349593624085753393149412855950658025762800089063568814923209519216400318809729991980254670328632185674487704766797400805244494123019257706168607933337726166795237231022560304560734945720635603131707037596272146490194250879542596683656734967847796401786277500941708392596517921137188850269605808592871546564185389115112448280957513693327438297878402591292425270152380183942827764230778659980071499001127186267256977974935585858827620784419210115012275557417797638627058527065459889378332964951877011526441421644875208632942410854193186111409682762851290143784802343912480472466682815277274311548964625567080291229410470366544127961945872451600591100008959934764826857346824604969511368019113143213023072466341637342509019213619905879348610301168491367031251593211223143289163231551486390389204907304675379060333848146223790476336372022317683354114329733331141893942473793198755133365951923692060556418153629274571724953820445747470974338111998252069390559257390707774360691544834954645439455506517513046593883516308482474634109905199496236797103589927135620109785056162499523189050215581468446772463615546978316832482756963135717558314707897091728778337180485198954598438285966997768692505943828099531163809644381799776035011308707394485192851625490589031108723329631488255920742740143440238814712545595907001193665470967389125872702735685273077751939688620387064305373419963678594085215789772443560955383209737122234993636234092989901253196033994721429578747514768554321732167127462276803323300056382327072275452949421725751941251053916721864335859445349268769220823873314300392613546630057296367331556490979598048992472669386456437462022496833800005055789826856676967114280187672621778655766491577003524611009327946825636771615396243792771294838137972344729096852205312331820157895844795748404966542625020395674682354733532589667464821188622077302441641396400574395899344512407081002310766672834298600575549363747498649085556304880457349808974578492631977514473595857773563077254678529823332546870200957197489619002324974468772535045331727309242308890578830620727285549856746790484861180492665365738111300318254729987787422632245052354172183013256341795439649838679382945641196752277218079707950556444508380435789200441015991008710562086545753586198813375442552127302894241653075803033080796360397960666424281579324486052872495607487409036181364062430201765226239558683682892096274924609118894291902212698768197461064344788994633549049367584304851434998064609544967328877300152215440295681234534489469325923497985578607921934790424873864420679228419251327300496390538838157937479116299593373471044258657372191835913423118924681215100564175537835673127527720339420845773309322939337741474629120414336423758453227800104181991754841646907988966638034903140420857975127670234369730901782041202312016332370681609809619376238353166428146780856607220894937814058508265825612064156690803913301450378737470086191634207868965841313273363314363382372598692478567010819887206149431011600932643020534519436686730988893658736185274628304684865086589316628441742815813439912058343184793314382513612576865309377574773719660808241387978909568631924278782136534145351715120124156321455772612571711542375752304356111855891966314442308693667051199138153403226210621594397427120765465231765198966424475262047151909698917445511843743312560411206000481062834177449518999061022134126445340065348576158006336404668827392202261921447571115941454757056524353886708217499556288908901677082397310205194838871835498343288088860711036176903323107813796305572738981129127703868279932165904053146896325986391942915207644121837405335668958199426520915206072234787011150784945992637942582738100456093734037384700526043240047651510339744262915897859421619027654612437100731415331339560670120992357055893555586437332466239368273381376660988561386081756085525751881822982365246623936827338137666098856138608175608552575181818189898236524662393682733813766609885613860817560855257518181818989823656205930398480268468925648315727203819634275024490538138712272836538138174118903818629370668796552740183516011067772154427487631866938516652689190966932412414576525175477138616790707468769050286308364149318965595623542786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880171518968731583106825414735475048320937668798878682016249772079654622965998697092863444271187840432634846582416724416037900486290633522739626326436896952186374585547737927708108320998006560378549786179281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657845862188194414978493700984027560068549802633573502769035013349159994106340615470787332906037072311612403418705507883790008981769470259740812636634023320523475949462864772027962521136864483778421277547089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628180166772303612166067813695171764875979064176720782749004474566711439030261848117098822188891664963938685131934691125989498624773419222103929318565373462824471898957875867961128151109965937010037834603669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025454984165726774279463961297439136852179485034061807728509874281227690114136816402846752887542766483471728545123898591571606211062103861150414532497879130121380688937808878574113569402360108611727474907686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978466858561399205325248703555458537010107735008864951963541191453995475570655262775843576574584612584156310747495367701904508846045178961035630096449832567980305263711009034833683273800925855783963976978875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498384326660489096880186078698996946395195235541223544449510914904279326593168916538452464761210297732380494910269720631973144576872230188864547231035203360880327345189251460428378272357373813799044513964614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260981238603894172852569764474274292893781644102259782780808093811884898286656450750469903550368236404570287861926400784608310625668967210515107875998062605331021001223580899087864525527739274544838949424609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432260277494460178011800643538046561772418288441537932797330316564262549644575247852251514033329218029943636689200450280879301458362655927453036932085819923685824058244928679704700489293410367432496807871678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145811167703384349810903471380868798951289092704710360333677107781408348446246860614725498836547671435078971650144527699386002279228873124616118886865145487571245875831948668196071351297809734289009348299609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533840137300363393522391326174642283971469201272934108032240148629789074135636204355195830151240608782357990545993705598339963964272542888444321935083739604441268034988549867801424120139847994694742672513457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929620468722922975057390432552935848119802663290934039894973580929027356502652096862827876692654166187793651464999633518918591982811237177058085129088914798950229698022775369781832643658030659460809240080176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158044815065341472910340118651075275759146213859575557984653317465242124797035629657648497169968778459841432813641506265880323735372672051002039187208654889404916333923844805717563887250930123137906973034464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516267055241661011619193956232121540447458844931776033264586483326999953276131156081986730317987770968854732069736111069687352300866613257328235545132889270735840381580895934095400477668633738822098999477588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304402485928102941244816533043001976781251848873242914654653747653084078562990904537378476391634106971349483164149431772592573598987741410425852565064699225753338667022937999299024833844979636165826017703760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894498768111961215106508070884528940298303191343694788607197230910879065454559290442696210241265089620800237754863792190058221375417994513677375502934421394783438454088249683005596980722742714752346186384496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374526571185195827581724295569753655476535585715371587886731558237317912035819433685902461168954935845484381021820980564566711522781111528663148797912241046715034541226359174023105072675781565169079497535456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234507421452663467912487992195042495063983505756316700242220978888450142354933264477085420732956420064799904567282882730897363424016355981512716558570876026319347603574797113673228442544954614124103144112136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686068858174582721066360783247211055398822853111623083077224932071876031428355497239999095438674791190412064095816350306921536539525593982910836444057789476865590642695907855588927801481153129605282973963783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367229678186722629752193572967621597457292998278457699958185701247041065275523470931676021088746201894983099905626803547323919174388035285239451968559022629912340556236681684202614065946016614268981636489632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244223448409014439309950760458749929609291944867872842446552942603550401536630485727845750678903342063754856518026058646545350492315463660672149559792319961283892566068624538219662137909561418094819626802348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108124146346823909101474784534812647369393780345086690201178540922691890721139084273626400840225609527953662226878036310749929518963349372478078424620773854564629746985678187794641332775595949591985874191668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006588345284789326123079425333212093431309861700139402245159398630153300275885744826155520116321655830540110902479913174431860947888944247191765658573938336152938916463157877752069260989922377842721076226754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489696984659133055157182490172640634694738316224845702956882134783218600502197579493279575371401946919871033919215034601174895493500576483118480038321070455100031972994606266908170328465232638024224858174035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238785344552182030969527725411833131949298374542996743450834945692079455833089572194166974255446825338646561066514161947402732330689180554887144239701482488141302433322116028228928803159132754604063931447565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132103501222558659285742960510769146892529022359382791271100717798787378979020601040537927126554260278572353850665444666703866631450870991655715371206920784426287258032345585653143785432590390181683860053275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971736653675812418556178181865092565915089678588385373460069351497669402008541424119586157738199026180199575558106225483616404106207630901758560745738847326450713338575654604173253371130280137894079385793643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755345364515179843869973757297234479617541226385432501523178083972557268785022568712168135342539028347810191915420343242593460913311364251073193994337038432388613758805682715616485493653802378509039348336224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106313879430081690861925874286987546755092349447396156707592501916836911293037748049551990970398233638263648913505843039964819572362115740772576823369907023744639354292702053460448038310231444811459137953847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816486757794233936898827759003578942127616047047342116721879204887694233196384054499475111593254796176239384985382401964770818520948648559242287732496687300301024626104466769085254560976052527675426097221758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178245991335983391817819096329898151391257543191389833725440528150815457031022896802995772275083312116597704221998268965832469412245112832949898729700252886927820088561271599497751356215241446212011857260152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491967200921485676401596976159704057369425903568270576217269808261258458059616706188663328402633856482864261038593074900732614647683459041578797930499820505904321300238863933029787387361962755332185958012662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795063102561224795271996046570862538431272191945200310509319123694795458561223792958467448322080383851926631532382845070622235541635575201604845859578772796435664079289773151778925432460163741951653324854866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440596035683326842799266546160672110959606388342429504300233636510873394591424660824687867914224109725995512135343919323395208857001590380446982663110695458536384642995474068040679609633400896596476123350118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604748274433441112967312376761198629786698630802417950047309905486807868392900997525783605684232527345124938846464261174378459017654469540965159470872997650711276266611757869601903289742862638348064602583518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586903757230549955720906262171394703968503952363129448708741524764225060652166970795528304128108686049739229536592431541725993932707486079566741459387068412327500416690860257614875887987623593673475462930459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116650732228999532240562234847784269088277733330025209570716387891375728361113161508282405867748061283780997658812245009750709847914399252401416224053285985178406026775338192282678495278866724568933375945160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117865222823289644483191026924741636339992805353093665926179864424954948846174813289956813731394830959499581124735554883738711252190337005154680402367783261544240656690622404363579199589191618731985304828006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046289697141341652030935025735593612611451396476466490210627544573749771447155080588826860313596615759788880825134084175124084231421887595702639616666768421788501511665029595597861841596054792017855481164654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932059501563201963053976214180739908627084806430321780024760901439771564231200722635434932737991573155185911006524727748519971019847797665568944919671648616867079037571706648356280803259648676734045842056865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183817396599836335767803088710405729720638481947048233307935220906084398628018386708952979494559033980397505682344935367837444146988538880452810081360625583295193112119347517762845206651922225273866969263002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614464039021523936521713197016823791016253905630796286769037036699987201010551972758839049026661939716483481149742391173870422714295049803918440920353535056464826470908831627172704391412142384229216009271291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142201091906924187216027755580459326490152150594142335313528627788269126850570087709441767082111178033916132310778845476958923562860626769063681154808619448865059856349824207852248210273557171168286043742793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432572141821734241696582891687104773831105970509981349409693995533517245346454725301945250021970423672563394199259591390300437260389765339723331018927319980366786966546139807538001500749940589639656960444463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220940907622656396770318223285959360902816252306279768529106713880771274641902570560244612378307890264854860064900878587772245828110243449387066147744535679373207145334080832496103686003164871160455763852964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061280575860518512612612637270196042362190166991290755289148425500020316639433680320405711411604237579803585659563124749946956984951358676171716148613421187649219985740236045258155314008760929919647446288133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177819078957451433595938390351399592322158154787478672620334227303779525481013433488701126988252706945729704429254738586395894031625241817680103388373892597828563795133490722566439821360408060769512299054794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916509959467358711349333821669894856705573807822002173120939153007826526128684514242907265999057095825486043035452329999651555781461768952857780536654894859263172911706262038297980160841215931881886962902828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641676558425834662650669041699510798199041563897096165783606780345803858875490439836681107946259228094843989003473574576572212780205076636124247453027283277919753687094602692110264128505204647715113195909759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887952963874735239442289840412742307669265753891912937927022735871589067800740485921648396309083923403988400951287322298306185307149444124552897445431895856118740001809527520962851371172568457262195438787859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732370814846534938788898100994832982220454610020172043612751203153811658299101511869430491144759374415119921482776988466723909198092150851582445610520088718546069873013725536346329956445546387264452326955782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601601863218792857765551482609868891466417867435548639885767216407980993078464470041589252981212008077546940444869022853477093950868213234073387381521176404447604834555293052999589302071650213184557608516378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363243734475532766109946298202924784572795959958669060460001018255384867456565827575071585872968677167511148726521220658930514702981699114593575970624052382042720167609089719364403104714270189011229197278328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297525410684117108625987030714408608388908161734018394521786761691021784000705721511533181834639810904855059841908065379840393196765261825490144962826381313686830190537277629022140822825320503157581449110521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247558551585727129568516671150265857537215249702073566554287480481883816894380929471939249707834269119816210471308309570279144044887529446522288091642693221208914373532634347018941418654987580854438978375427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089822703363808724832477362384276712729982790004723750336569135964850589487117971773589537523517270453298808976870603717168938131149261179907638681757227782503037994810530997141332106791117693908249785759501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129405138410943833830994337323561184083415610952547445426678744153945274380854781574817180554292301725770825421551455231168981598415763033104102486785934451395633720568858890690571190839996979952133448395228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780718006517305152956338263279321271806269594806341649691021116023646432358904772434776651725043701882621158437644226666204751278252351887021789802726728027711822773152103035872642082452898843316831579166649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863150655902335060894613325964758574047430716451021988964666857650930833004568187275724168076705921604355468100929255939564895332950279715672189202732570815062770907173871031323842496009919676665726212488713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213744700508903387153834939078365114580792027210147906297989923573034032499697624060788973218431088244930826619080262204999011285974929556277217464611468993929401059494209733817594382878025044409968753401903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445681784062574904319170877438241040318671414204172036811429895036772565460710501286018318843305902670413591446899968847178334704082914681241547430930099815384258505632760473908768904927932249240953499190341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475577059500911944414225760474872733464246079592462981704641534606513308409571476487155212860865784707352955176812758232095338163731442904741798402689359511383623361903652219368694895392929861056065435057970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945655157701519189869240729862580527069848312895480796254353197417128584257661140282009534969180216778750906409638893891048450466408657503729405221041128000954731966004650043944216848594220901445242927222558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884527512670603005707641095261429896648818120396063873408498555009417321987796675327499620118697725690414469020624776565535065664237591469173330727489154340583008070722148098316774819302173684537002122864915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875213492229698895497703342047861740980716210184415161772214819110043733371169367430877326697308599010371973977949610284291618684127575699139864921142478781435310883070128710377476645242406304328370837731525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000995070229035343539213325589476525032807105285424124294687830663108279951403992648538194334618029560143112432856484696531717017391253878974666097145394227727410114423938795895987891054566410426814789116268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082492782583350682569083780835456936366817395591500548911712294589342501939702089639872042336081310929952781885040277128738574435470581971449057130415919250755715118568712451386170846137621994813881555082938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063748382935317775380885589411741926329374954300085072224839222875439442262626959819118969563052527909934629461536093616354944787917503777137415907062317596724558368532599842155881031625624442765549902532750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522100075233062499389170886030551349824542033286014988225189244497897136543887876073258396869412398388082043346266117220437998133074235136784990845864816666286201110167877285493227258973179629008389380937836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610866845447786051856988364354553941467448836225690758229765668051777774848742973152174071722240899625202713446380289384331452516983638073117992146783653334217478880597728426160203584308289244514390795487419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711129035653109206137550104153516350029477360280304265156068704450345658653273748883138871363601280833913126850405697305826236750606618539761570417421742759409404777662958560993046444536969357131235331390184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798648134969900336823663592588206010751421305993540511823982213935958424212886801556949601316342658839229035170296385493143120268575172092434167716759536738545958915630415154340888500416067053346654082813070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881608521421353530414979434853189195283011575006555852642361877164423608307897345825052329324364026437592459180056329087230507629703648435508696762133108287701771634937764001574077061929099773118327157053720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434280942893214788848307387257704974253324646609483535166578176707446537836480284709692610131864502931229616599437355582029288202344507282771381373531087386815666846805841655395240631511573679215491126324775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431445651609392042139955072749878724457109413555504501572289709470592871547857842375495555306882771627860681824647647199972980036733287720747522653591039754964088642547652414313788619066227139203374830355538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389860478166862977778403127948999170739672306752216295096528789631503782846767916109674558488735934754910866919617224603794332653671753266796427575943996049976680661204001653302850494997286070427542509372077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671900183945085350711525082628454534527375779691224833371923427615820308014628017675628250240714602509716056309317672459307604868824879005384715805207507448203052649668981999402515794942321159027841043254258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066363047833728440558181929943124928206995745614238266530509813446643009698835798899933364824964722667678660948382182006917644779951541006483149509234023132985550207601297659765482514322142772658066657557824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981580413082967546815203466039698784393830818392374771627897713828444340513409511684277340921769072524763108922444664789116879432513222007365153456231185501387421523354450308938853986101461106907489109566359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352799362858896363679518066994355394737960678838639432992182785568412558677995497954613302878621464651571399165914028458734870270526106981706256806358660128164497972466681641619698798867736847470963519634967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983097240046310850649974105912095015707758414148918052832467306183514095174913707885125975348247692650042368546235843601597072961828044309168026370057859215113722012165857223365413744447659413954964395531325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638691437039379137969021750962586928425716912905420020815546977772690884691552481174499936570726048504395080918943285304474939896300603185187727458210524655774108122548587461398410245523154697286056159900491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861366152804958762154417326193041179249699714236480394563630993072083516922495396202008388151191837244452275263668892099295766770956673835188966195961605375350086023233648287212672794571825927178717732484309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451746236005539053368444799037802314935009104335155598361186501260495696025913457693658762226557706320751802591029709744929517888542021192971691266310414209140107864252386132081347634547297753174408567322103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187601345112433762990535554619591752548043038904417376179131696274344878531155019525369978077934471263842488993435819171956729612216520534622308553410454617535160285303531706014088121363733345863747449007128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903139990505627544398890446347223256585859879118866887408069701032026820399164596539398276313976757586756306611912485289248569949554527475825958380592669805669093152791187730205978970631378708933883220709508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876387859400037811122554818628659191302654661216074980353256023443563676312411815896469738561508295193180065715412630622899429863180944708829996977823600837319327593124537302930803197083916792112382203775938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731464770491543124633531492311649828461191223204432979879886545504885502817224127196412962142552440814338331848355485316489156555947284549415951832993178851797857233334982197167452209398227947038948309387006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688926530110183871898352111721543535127593826432969022233949380459763785580907317163495687503270898657045091638820524807942352227535687082560260318281292577270037991853012635237990106194259570352197978694603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735054157216861062524353129717528701700217138926526862619668687123822200180819981055671128721788669286651408685730731420302602941758006147543396996144541957801734713074532518466502487391866312265912601566023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839239623069592894450288127077113265979220538364752490063865053846735265471279601392705742533572399284392566821190075920761228272723860856213827653499339217228831328929444455418559118523325131830035127913792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763761410250891819342787823041883115567958045412431192103441351490269095501799996042072322609942749361962125944584701579942673840826916807034200373342817358824220480345776191805538441867061092786475446871109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061650009254994233945662165624604863627523675719584621270971010358678373762859455190356948078418442046116427432686078748084405425187122732222002621434798954295282674932403815009818480465700784161918386349257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861578398159667863531221264910741628340363758489867323878266137690359301362324296156031166345795033480696041468095999851416733156416636610638135933370291055809518610025965969335853813370266720930385742574216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971116746266490238943266717961130794582310441191900797838817152230006700944002400638759226943622851083989082522875583396750453543274241265645394801066480187933702647796786435630154195928502562439369802444070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706191447997252271479529327963073535876112075829068056459270752877176117312662945676036633571335348362257492316090884997339500082390802270834018442186023971562268946975901121116417635281961788002013550898606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250815761042649807718788583191666025875455855802071249602035690143602411606765094417511639955251176046355458354558683733327378353855866576517556532384665889863983862957934979865807839120288373221654180551015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020814872144868180912262141950796248583678725120084959052492536635255753971301282522666319312674727117087401687401981820530095690121079949369324046386341005226062833597847775099361974110216099153341241745632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948890437898149713389441121553404782853834102515862734522092981378958015125267959050168838110797793737852314075453642383267753725911397231685879268790411956752555832558943262474631695959323793280773972152341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215895237336732356716715456141755516238807971200015234531119945417833872460867591965315696494597543435262414717377027351623521869084588169433264954360963069032786367827217343378723421220127791453073615284429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251088231326044430205947829570646964208405066397206393173650735131730038804452622596036548486365969426951483721919405374886648224695513800141661753441310943976696304892594972320831753099626143078452993318016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849076125799471641309963888597728060572543836777759459494879039592655876319211032276505838730439987043541540772170815337122816972534708480460678481530339827425354606736133106255364807823517193731976382923197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789399715593846707346382221087165431159871108323635901506917046254335142205615002339931636212269316141645163467224870089085755978428672090870503505953911028556125649913517596449387846853627188016450215023465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667409023826142450163971489926715058806214047363887717765209161257743011347519545220374908961631221049043534651801900090993521519640471458864773560214651224794178059004235182076679650785800263851082616667884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910704747182972801787259017034033300092303925380610416754846698895731350680386861742639924436900050778323469824069242703312234425338168695545685424131743688576721218523392455145195436629288774904004394559466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720868943409159725896349283592949176418770735118875573352390975338613904611744197549108582378945359488173409788639450617009227355835690040585622723780649116217992575263587677173378254508192811081021590238831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117961769740289374567771171020960197086099888919748227818340645149632401913419859546667518630438217822980536476808596413487848827651335906070316166008073856450236740863265104795655555239056932413659061767319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269651849840975725311412696979996835831311163623016679676374068208473522076481987519882298630528018228873740084633583983983511917977005782448199586712374407288542554258820673303865935123488499797026231342809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620110241350253016504735987391299668773165788793314681146209300688222308872061583309685836479381171758723221188044075636045626651016083443677231341484618712669394355809447299222058095400341747711692494857224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448160477701404081374189395454759655273539614603519113393012231332991332925650798965230809059858574069510691920327933473397266149554170561661608154295217879242085018926158908427708999081541020516351796459815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962215938487588392248992911068712777416931374725695651334300630652273792455105626692188080781183258673136960112090771466579443662883300144081586309863172641906333044044508058228112815488916198322932731818799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379513631484335422793933427765368610352540772583999654861874606811085441599378263442183839384485848529035304569715109912504423138252492529540089600277653873866357415638827431411023599533922274661428089503023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386140221202628100987841947785566957670602082972972849321728359478850747856268835413960452050327339001159768997592348823789600370474350944012621810109481571513305005269673475051595793024141924677188377990789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929100085634596084787274433460556184821630338722910556433093467219264786656314689814420038187211093438973898630381721295790929911274307671977729157837674854628928521808203967143785079336373695007727664266755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207812335280786703605753169261111141319274287790446455907453108303045956119947788929764950706463971681451462945312429436355548868636124882656124006440932704627209919380249935389605974433512849065936304283010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494746573527063140084600227060695596769687699358161220808761428908243828225082716265451015076507112254877678312710489858125890314808011532348223548575625016361343244575548970840185256248785584116155906291570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874726155832002885605643054367547301269759923912140930782051634730568394435766080505495391291458645641895198421266755703261404016526464718191682556178050004366263986812632605156770373757632282557237224033732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172915560518003291237502797413833634655705452783485374761577072978602826423169895661621536415061191691186958507630088773984133144332352216108648075376275627953573261927680750591791975382208050553608592143706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690366797745851060492373164749334851389131076704781689315092800565250807400336026255879746587338958865045549105944187115107898947642772391413200859027313482305147114710862568442443055612645731317975946690830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324952084705956236035132887635692831040423514230736898302257618939822104514711649750864957931331023051640070274041872292552531255505075196263090141904288158378608018722688533033426032418874199474309487098090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731611027277193039228750373527674603136498728601485908780108902769648101784192505137683639443277985897834996707510645916080799781498674621295942992949510345561239528518996648389315134166342562538722904207857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537842483964045195613952649940910541934802783338141050549750386325213441665253257834624105431372420513436561007097502647497506018793298970049526351080384880012217081134423115923301825065523290008053296095052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869365950113166805903176065399413046783186045006298095464117932227606439454509746403119000404610136363756652514763392205640853948811565665156414499546999798961551708519238964173504861644019602822837023105319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643425135810721550993127870018109479337800194288116971384559781303437591174498305039727200508838510020486452766917597291317151669041458699094829963978857884712415821518191513119364659265502246995225206586123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880601612683328108013730760678963885303524762479577296233036320607975313117003215631577396114141726709684579198896782331749802500904092769839889486946584061970883711871716267895059803799281868790835967674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588638631457596991628226060779033373953780686154995433439666253404137239336058376135713663148496022846567534731883339597694060242585033382282696716025148826483767031393661503046556944035909979588086530647752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353029985987653456158772655905776777052350680073472116044980648839123443149699456629688381099231793759615151983265012059878144161793289005863320956390449673274096775615657921695125695757343065011177279446769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108802198036646903200660489829526544197361650808708999139972680652562279641804946454156448767012800583944430038777135570780465643299132187060632208151427506224046357396332303341712920530795518615942218913417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082963723479466340834676788924290451598405086071695341689272768570261007189617528775251605114575792348758289688272500582964348325725019488704916732932741441469386161100821207301489450942209156113531966015060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937076008264200657418502417040705431717287584945349675596925605810680009173553233924655397658056115062668571458886231368778250270750779389298522128983767573394440612389601946254801496866953716675692027945004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855282087291911849839551668044048721547532339125619945930281059752503341685465676518494539988852432775783503720834777412746381874054586392925447115055543227998182086818796986470104656134118680053965131346723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370161104070340909262826748877502859752375102385452677962055306027527774367819405779533840765937191233904161229938965877540504209331657806959653412589292769002105835347234056106514555429320091707450439470199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176841561991791993512415309491580100793747740403927636888269384149937580571751713447558159310327457741875763711877571322468922722424933777711395755848434693143205619352281759976456338446352366793269416636529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400464009118807408707732996430309440435818340841417580184789950262473895690754781926652219934967405417288191105033252790021585459431757345887327695863977413383026542251574881272858188927328497769691108525938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817538530731589200519065754801582344915484431777081767125204611964939450188625676374145376864560060142151261292424645967306428464885104976111918846720498664547599992680177566433790034005684703754475628782493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434867636952493941538476675380957735512146374990805038295646709020523046739855643558238071200134051795358177592661179297460148692132026306003931799564849444447316119372536942062347563745047826759397321270337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612284960652327697097076479039139423140213336869039480868768474330801226886994620347082371630972470472502810603314164701447412054213824030812834719100930862026974909153607225275128659774951950701446835957034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802188062975995631428163848511209471349952422729096625621310572002786025213027165243573020132199505317112041933385624321811596853531436428098866010958543685260108529344637841188537182627216507454141542909241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433068861350648161231335008442336241417442522038471620685815778003440744224089977379525077227224252216325270798286483423936031993600770157814548549973279149571524204777183259862557471172176000475918686134657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985889360490419843661556802806391016931507941239844261414631452720749063421674666562208207338740544102755527732642572666260325434141645180646462013591074636904814091394881734915019090588786588657560805463319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658589180388829010049544105395042819085217095689709852226604914977034425634152011335435956016208048334570567858284751828869432645728470941550706639004202184742841481507293211425552538487682398405964036946755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260149292053248523316443033614105813480812118784454016800498418637195377507912250981688395943984374349050092769074304972197321668269078681894298865543260393479960279152866631674245204993576832197598296140906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189413304362658549333964488136678141899403537812518636180986143109380468608423894176571709198375302735294605318217748498067641007278068935394877856208076607646288643497578138491675496948013336164585535923421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344333242984617134807794157926078943786937879321819276238320885621982562620537061570533650998666043733527800430297853858257772582081434930689509974690284212321480543625214410992658451320869835695037934121927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320140089369543524642846703906282961292533317560905458015241533626970463341560947714703878331140804553272026698516916550545808852623472270091856838115291325160755751473298310481745116901185447389050027079662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920841561838312623278705367794958720934808531033700370796769814433398653194730055395503613737169035404412274418482508972554341132914140992101050279406078134345274545748910397870395925576771973032662920585002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265600676775227127811508691824093126398323889514330730920806181836705332722219967122138243924941338450308553742913951006061214064015277299204721624746906019968753616129309594435319670213870262242747134252951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019927685277231229433845375373445561927073184207700352518881985100009105886970246361413394637364036291676485024313959222610891431245843108024918533766365473795428101980063946754916567388220937206795502245397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599764249139615534630455967370036698271392447461722405377563884525060573831172206330995224613827515438426248418305454616142397679580757579289295535823158379105998810001363558358025381930496087484840623244213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709952805865092748914856061501490586722186301814539552715433774411574843014604542104723710659093745894556018507470655512504962079763495262962858574191061198684337435959902767513512428421627873827040736179018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992080440914014013019692058848162416577920743850616592988429542875926765325764612786581365386930230643249514872291568341948933977325772383110186072859921382743995531670717977869463102412096562992515636907070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131337332213455591201694281994463558691199010467025724886303914313189269027234278807655956714355081008523328736761888331433062584028544613817909164915113898688610204244109694930399461881564346922592382271542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952617573029866000284492088330986935638966693573658315432198051146302918030353282391251226514579604511291362048141607426348368904872534774146049792896866547180431109637020693661800381564926460176322823546752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740162787937600313403053653720016336106731197354021657427455266137724641467970163423221094839273520539921618466844316578051485787487389956117356157422927107997893783041174634233172312368706298879939563796932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344399560699134012345566186600272386440912957768174567455620426969663979149248546317615555834788491120313298081093820200166708214261953839391351949433245587415772583694811634921404847335467048525276266990959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365976041732760691839647606786632267492919332316113187767391913271315644913056937058551533950582292262979366928009889012737440110729913075848391948372516387525152681209356155068966128156527850437743856737065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167039837724022900775191199017338872565494516702488423144667330169795649313895385861239811166830825720223337246985737787251767301674688527011564277582005939357098122586901258892772753477512459695452503898261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403061439105900321537979539693021851942326880794685279140725877194846904117641691522747211068243909658349368174072439125672601413920553750443877850971869061283089542144509045453485238152261213609136327962561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479212373919370575413872603778440942173025911250492386154938190070397322698270844593309383716314806112834117948631308461995943078968496411168708433793344057007952647802553242998827021223958907157262154491883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040151033080334509873420821279214120042048018050107979856172321647350440136981148554105881197260873953942549086287378390374680988320817221479683074313026938154363684537845761557520199479117741233670859357176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343270927772987375157616624748404739285155086316421530282083526501557563119590836823073403043927151810500275265003370868949842881323568496500724939884740105694734338056373384023824360725388733091113738840764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398059044992413872737639857194829128448347659740140414325981885024539106705917683246226948397361157181489852877065023792132178926953611637930446467710253991656844314443202029811685936616659255206559795684826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746699739542951868182009064969761036782152809895298760699571035690960283710085997898989463348720957080217923366574870714677736736097246399221575321940236988042560150000758404117573195749841674033303526039480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896150939469264527739423511469401112771914913692543785853948352726485755216020872048124916910185271799518375607328442667718476795407111621801535398791824774981618583564645228030863239977138499283592092705553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599709891641809071291457489862443029770711389414628364848487157678567794878143125124329355024768726846894693387893096861937217245242168739271859503264117183198135708927075601079299185145627502866219243697984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800207881176791477877311363880277285669694011827275547502000935927404948376919641741747437643099358828114902415856717211865451819540327446308508490018672136527178874236275133685438258435726097657633985935364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593242285382169458924730837269334803451554408908180300009713590313876036950646295255811932331910420173976968511078545102058841174742956674264086276226066772160763338326092443117163266104428145958606250699868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417296043324790290635405744264355101657618868875755289249058307322668857940636107263471314512803909679409368497933681487571329869781321192473059949601402778186483195060983999490292484822645196907669493668091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872503917315524586995542388613649792989340573091186898229687569221987835267888481656201217993235571811933947899729411316250382377160747601225078909139136007369816164496155077115624751848671864274187522209836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732109818820990421774795824467599020083571168178448830478739147534493519381401175208813705984398465495570550101894746331785135447806050024532228986959561098127445372003405068433161951983630318170374789862663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519629062149549367514934829553425573267340573662545638782087724780170125191080613807632941910483768620615503990171057754937943719814986022745743276873586654721193724736483688847386369550981498602274574327687358665472119372473648368884738636955098149860227457432768735866547211937247364836888473863695504723045861687577899262417991924288808684663276562154894537758464269366017054904106967913965856504723142697926688920856929628784233165154008797079484044606266020591420715726414911842725772544518517922522992289989255241793132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480157906910420838749535492617591718541229359751899008922262172191445930678861976035622188127806388132245635556068069415255297897496905210255587116668803946253165815590264701717990003990248334019184741861117791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824067417098622812190185733368156857032359430919908413100327424163085607040183967645421975659821525834228867964906175332880383375925188021355788935119163336359125653076196344688595555679031931342675338330663164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766934308461700054908361012391654874021552018074383204637467839049999351856781079228972587469036774957913385350351336075507321325600291910315513107283177116250772551531257304962327220860225214648402202842798593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823947289210428147770904529570491287593524120513586876032845142582734694488545643193344560610392771958212921941310874666676659245749138539157944635523988690676799695355659403400839266309489156370515518332939400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577379697276195362514816047504644571393528525921757839527856441202769631859515199253706473854375073484198045852310995245664026394525671148305359686783111380040816192340692340326098970410456803793483601054492920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617297369231269862904132940693047792690340796085936969553082870633498853589806317037906551023455503598110472263078432437887502680866528666197012358431075487193446996135110246538230763263859894685743530656058275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286157047092318388883712590113775110154672815683126173135845444955569340401606251591221445202630400731678624212347398415663606157002295757951259606789094918071487219920115133860334201249033432690190315247111117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076994385057495720844706161764642897016734248531307265311314113296922449973258986937933620538231043046881167270296781793531514792526227715087317841347201175082919918140024385165187293321922367139330218393718018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357046930167137706293723161840281281466540339392997647994508355635293134044814997460821573143678277060209036200023656147948179616695338982033036431519760589388240313104586462453903945756376887059279419144635131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418646706338393702640432719993444501765362119418398091405435431204661107102294914795728223004888150989288005202982221956031371555319180723675808735157394941586386346592426492982712468742873788710721177960934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752610060673994465714452565082185110811234734977092353306073156034383366681280289728355294978346861207930653666229848868445897302368695057318071709271048802093698860052594234685582421466323714836033470887905083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493756285725553472201552916273600484207174507880795076184591360695778824861874794960279482146832553636964805579475195804226596181757545537257578006385007882894288015404514728664507693636429261656146409237609919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358597934320495470073979019762402183186450225187355768195384669571307006288829263756160327876421596559312529249242216132957450406538220167262398618661648581434298883151920315905796007336630592644780176824280579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347375322139017956945546985589460995099448197662316058273897392430853104944407870847269906403178359352904613848224060814013067392119403592658922911969016830434362279715304844598073159037135399085230555413585030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997564711313836503606104054887160986190396184993610539032305603590895271652168824412076000293777205420054934505995932847657914451389480417920358508525299387445006490770503204262460392913479186052964181514073543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409887752004921222370695585812496257133144760665069336788276888731032445424398289077351072677332667843932332201926219365644663220548552196362859886982124590594841453898355243171934249129900618146395923563828594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689092981539854778104754603970480564097019438611243783216133017217352016953866778938051847299996113301753095363920200797294384334427132419629801071959511894080207607854224753470765972679570860437380133715614849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507854537640505365757571955571940241392108268760908876905226368654030187082270188354758472399922894034079079513679637963507263442245541912809577059031587725558922077896911118686536928072383024038923627104980728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390924945240817662509527417274156016145431594518522171855749552684752772716738913902901472023505989549615741731698904285539944028302783837762365010859093691920154027694868144088268392159342531859686296886770735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946723054289271511824641544091066453295323935450519305278990931728114996492725306034702159871961345650020631071336136517861654416497035736820976258374943863039224877343571755966711011669312791920462088982875388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795232601888253730337752336012196171161255538897835617670837738785260756313420586568197019298042050503450950135837302702058324470696463969223690638593311081122013967710006747724553614517398246578733436414551852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946991950561912931679934411945972942434600010285797589940496943656661909757932956680542467013837449990948865697217529786249994440386325648873316760040767769071769110217133246166713693357767751796687482379811974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237356520012431948237319111641586119940162345610705558803666260316221668784713489649977257144363570318750075329860063330828997051279145819777920607806942050549492682044404634256297157534094927435579725160157207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867632078154664881263924082841865160249149549798644272098660518203571764568949935602043071048929581586506395191730563855938221751430131434807598669332650487479903805646835095656163984160231551047965988593168474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846026088744711951867528525005617829728887196752466048954131079105130025731039262690888474237156518309916354673745723994383500092516539191810184237064182784463199649055288856993932528265626282428690760469591229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079991485779511741071458789278928594455422975748926639149060612255901846742420489830696032609924160537319803993095803184587418756119655169410302588427461326771528604167562599716689009197446205707887606193824714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857212670067522055708177908020764223877008302314596324376972484302281374748014994596782976524511116475628449488239112658022320723393967248735348379683470903721727807182199304579617087484668322607548311946463631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104593773982337547022348970989382383349606222414458818157174486985800768017680983135448890807309801045982988406710128613818555977913112658579462797634402093254046425652321448785499837045212678648629596772359938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986484510898251955339140452640402757528622015609839097436788392343368690293794902388062976992556920231250427705108943509783202370260907877221028883869173065202970742687059235430376889847491331150845727240892727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762867848195810854733788917216503370931716230082783544609535500015708732585371829606975508170435834992204347823973727085823269636237017609767484500304109060401168774813123641572249254136735065969999743514683113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846444444669225835877645410765424544616023777827884230143241483760775272286664586317686875728436203463872646470337810455803840869900184700132949067201629106732086656015272003570377008772363933708461915283204882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971026466141404185726108956369605831244662510334421769869553123069183533005618851848711467565374712842537837536027002540478152676963868002814906708268471436627044938342088682979560559153091431959230537938970909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199263163081536727786395339826503769350931962174930710360546827463851923840108589380482153796057037554136341945317910214402772440022859505105250788530056362548796203963051416750538902815483989382605618460596925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690376437236786327092384808357049285566542256570041716643467942705669316946590355900250098110204615997069222696043039313415011238520208433078349276852128023229115251973791375174328405671719578654820096834839493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411352900703212798486817378763769197501596503476210492679280029798828161442624704549931873587379611446122075041773768038423308899512489273821719117059951771345342994572972521521403834304607340293212929718359902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377200603859479443146650104107719235172244725816987613573155394736063610226081719549477487334657530769762382929970665938113035566698283830832766954761096688653181122041132550888898206279798064803011217227923341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178282183737129068488432260975031906355301794126482389535114738786399505486022460003357691360318382569522393043941627677865022636715905426082179416260627865341378178728420381565930074463640673989667549268764939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857296417081985894052169659810525337889233503198725849488937286407683296645338400341397336846566429981296207453255651661075482537381673969227716956365366825813785392959280486393462406800456128973677765649926444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197977061967355632780830374867624281895329937993501743770330412678463941074239000407519860591815646594775860969999412559689622869881578902426577897779204528945726859788015120391878644971604999362226461249586877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026289546957476210108078742584765714780160883340496255465063241474442371159678992370589827766568589771945792599269290408338932723324793025420327412082794436936354791397957972039636639578210495841631440396542409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301399925372529836689104103313594394347713254525111255211109279872778595138270891636659095207417092752512990262045541030803481032270004620819931349774103396993570520081349069420803787220379046438289024990240122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758773226902672412929662567364590687559148963120501742439452638939790244232370326490359685257821378096515045449893186606855909756632394422618222951965642157254180903209980449661381395312098534796711469934269493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269769077593665452090820250602780467149336326778720581681597025048184007645428436549500337194233565531706110028442303004205305295293308676376028645654611038275374154748491009312872595644205697610999302088104035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370836572964093948882039748696069433331514579163972074807234334427069762865685088947309498159719068311061200102867523095201110639978597041881942784387319179548374603671903556930383994015483738186262489261815817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567616792601084723826258975990526379232591641503276362559460774627417043325449345744488947721687627182772707294796799294070372568210612950899937024621719988989446787668627345794135226403349817753083399390670296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269320753650111960155752594694061918181848737771342683444424052930660057334458886905888039317748451177410239735877528228438595867202823987437435295921155624322438928963002729105687288726816161177303569527231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608781521949380382190631719785463648068772488618103918944897507305385580490920796321483089352318480379090666813452717823353224661252194992676529142759089092262117510817467050005956809313519528400804390075726178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370301243965689712377394516731859670419317393074231020539449279372556695143497880554570330590834011304552420883774530182347148368540570383980300834901466615756278297245438449473653894739985342875432822747853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543761606289610103177892081300713313496833865486540725269994243818874654827286727227810546989992436385383891710091592717082304906672765961623781686404410858757454793666754385969867095547499965912023647186302513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367636142721091091632643811993071180581370532052181871689034040842283314956139714100091017150993735501625049869802128077552418620045870896844438306344598949555144009876519220044348268870127019830394069224285391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968023918515806791438606554576306665385508979167196722773975207635829190576647967180388564538818866035064543168335512453205238283278277210925962979474365082733419069484117477135866941623551515418976650273652437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203003429846293990357604055326948019752126003066980384350399536224586496757173536448662296086766502211476197190668367000787861952572772496077495301582704019156303489627631553591293521702092981509995711897771246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164103614737647596250976223028811188954047134804246179115385416323284005437108464269095036218683372877564455558445132126070936508889689962610406609727149015825926516847763506236573352767195383297892000906729856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081943357336971843195081657518177313617892037222004623202250257101959975795240224447773214620837600834855387730627390209188683525101963976707841850327839303456164014187654569380004166672187859830183324978043066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943864799215827507678016075065363560192478163288489506739317047508196646271951189687925950485598142253735349188202252232254527064031100450586493401962683243996750270941977257999962112631549818066293540715583610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005901887559432489987342354418536298897724641429112985184953106090530703685290951747470466217592782127028442720276324221886500362829327344812778190824737197178733122826245293390331056612313694376721597019056278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970730588914499576286610805194016087738399359475968793420630616497610162893847437876270839809365286890936241353974223097404401233773452835062258300768194953505737271247291463024293420118205594285875409672998247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088156886539095810551792517892616859476198901851288548533001971913658050934308651373391567144253106933455853593690680573111213522090148984322616396432630776114024959572757551801795894194013197745734228922330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325796206777946589615346666284962251255998837366356154573809942398223413977857318118526694509219333400278395660522190434390795218769528629536258345114288337418801389766833483451992354372759509972488475499853482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047721386934362393518517720943809190247679191235016341974983001943492514392273283998952752845430980061397557007914170816782579339825803450530350435599716301845528168292642279637951739982625697213931034888695236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175069970282671214823537616753390299724794386940098439803372392608257591497122524969990916251682241883027706483153811223687127561226085840232521772823899197546169668710046806668395139405468301470663243728097173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367784896750668680665695204615935906403278260228102365520837977749099988133930572493066866543878693836289431253517516138530476569608483426892163795317644541891627305175221678972080411022372283886209656630432693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800250397115413563807418433383843775594568899343275732876358995393433301321522590012083860051252010931866882673567260499879953512265864607687845448841833834136625422196971463251892117282500974121983889437996477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784095532936773126665062304634915420945503013186992838587040497769498762308681601198225060378407782933137148693195576904124809600289428590147156300359952118751134960928464643882776366816444290872354236562624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880471495336516304463220419935623776365923546949824861222404369330506445470866983819456132717316706287211292233088278228768566112936704043109736681582156652530953192735760657553663381308114126150418274259197915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501822877867751168351851390092399073510597032706696191540732872891168466075052090920060714564638393565915655426687110625860799966340457758882769823034744991771278741658923779796117044330665499088194970371992812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625419239274660390007121099734961053233558472567594158335365038969578883612227716102099081807849942356230921096520200749681909702336820464796210938523210558762150886567676848354321163469821573876550837832037338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502483200566561580635979236181932300762882729466887837907885397404896953393147003113132449309322770532613002885054342907789006340319100228559937419959054534198294838865764191083821664299146114191054104072171837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033834039847054748264843421660150604097870387197604533296815945603974179277038661169175403060560427594749273731758060875311296607988071723021883091816310355469967899967681411322384058487215045110977754130927334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108245753273532378558101279916957607536616328445715479677570022259203947901245647188595273323538013204986707161550915878288956727461343961549590248105267578991639561562922800247341472909294565424144238427975134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028218768411671028519113734962555044156500322013218780720836321567275832894119429300942017627734310749322216301696903711021196817814596112985080356782471755722595233764640402399244994117133227064814092208903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454531828388653870756476397340816244449879336143123185696534013864422093057439128727633815813871255067371224288300998581863210156353494022783105631170331076712499040051320012934897027213099521549239150785904214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068266918870587013314646320508191505624847600443520708075408782114949462115092792335641676736833501642284278652933928327928453321515289204094301200081708618584107504415762168102606083356828369738431971365108293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764133549052939570876599134289972977018161429476080132837284371590590628796866400470614917846595143380897979017472288822130531415145267504796951734362334726153303000930497426565394579474740788563667819470875812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857621814616682467550295237752661408949262179410234215163541177570269072944307695709089606441496588167174212166831811496370914477913934086779172036360471833759073820099690945012308440297824319898307429912474750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403014003363683787123611627532239185200931510869547854040603851429675337051449228581682317546757859933248970433194748116313656876224420921196163984780749399063255065861047264994627857091184829307640052302395716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161915687678664744209176769614601596143007118763711598184357094876341973991380856286178181951683356605131978094532258542655251653405256418983604191809877564754700933354564638637458818370719308992777474777651940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983643477923420004450897240195642776843574000469180688578829638255568576955243348105923536963237766541213613659416589648936012690830391218907966934638782699462568989432384269479001954491764907992596728333201502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748773515360878547105994508157375037687217575866897476371420450858593475520371592894144903845551888247782248886056768179484488505424827117656020412756251081698730294789916929041778073208202945391238728850578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336613973120512678548019751401068761497867822382951553014477543880094209195811190845593172841912844754245930240434415604684960365223220703918197954739023747928894306287558798955043463327292294265819818993849643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362906796736528277031546320116423755537799298474640332327398535516109777781075212622968949860513517165602410287103772412940827807555891992535075849715477021490914683365543223108654748777138622887576081007927178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859039501306666592730117026037662981068329188801540077400682229302138595764542356841724364975303391034247595466797769708002737594358006471524868350668199462078500178103542812825835286534039521232796603536324082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767687202659189314667887983961876650840897212071621470805053296553068382337586478099701736217752518266225944889755547910790029432807377769541203788819385753362453555755538621513721579048564519552478272383904392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359281304154281462067094690729430442763735707951946382406385353975389325145532040398658131876665067180128552920929028138846494499131489621511096573538273671105194612560704832112062881259687496905332546516609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994006506218469579141609025863337653702695033632515901240061077265518504085743720504028696419034506015434148258748213594896680516971622041292189090136519426616334910151777093541878234115944342573018458460479674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123993941887800098000852983250117971552469662980523935942605334256683484171065964689960240675931818730076077165696460027491847845392837597739561010543622972283307967124275958191338179078340962140827730260945983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948315697133001082852534017809175846522941747359197349372218733486503775663769454517348058412741929648062378847469600323632964560718750085619940062901963618143276961079101024847744994817747303697518992281355769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208775937211606640057131871831940378249303566026421145554655096381561717598832630660635415029101213817574070546034758943777657343347443313614570695499585520681596871920795526467023503228932588692655211583740457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452057287892065390396896570098833039278228312463988322593681848897300762029501913922174696391900812982244757810301784071241371181333474206915380637319634203722700135312823156128209273078733360657318822433035267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951429831850549387764220559839784235496068384308044463091873898281103232617494249024592968705429095989327718867278818149022051859424964978643722019150845872524151377330865901634373899036909618394184660480476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196256565684132100997793465867125309809163123694545655240867099025795737378690735707957623330415204577601513883455847419623747926673163943170811046161492806358838918930129277650436642892222952486596196474250156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952972046003562844801805143092351464906483155814707337390990940330635162847636452430703990228906910322690633577603648605519409027826803159378088265928386788589283339814431210743242105744407797255304875807543827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128999509449051823520285501747845472762059863697070096215053673678007104018661808141385962780769153033085973597922274297796806443236893084382221616134450290924444241342868204598923914410058649485559820602849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302957723739494218220628532292532966281056278942937466150517532071023254039560695420249982143153977132554329758685525272480132525920496236391864282402295056529171734982073877274864534744992666383346808047284310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133129653132245368773308954167066148363110682779419010528654438552547588213894308783875546974389267645496621380722884257239345052083454215664457739359032723197581717659160914992230053647772838127334166622533841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712636566100746939708920646894033570492380927010705105350938561179427302169798825354162801527272038979683516042369023818835988721040292019071056087510016790371111051793917137546623683832541447178593865302970564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845866897492106177035032173667065708216985559866053152727023642929621060332762951293492175214297488361749897305387297952317713765169565607600941025720965264136722804718901948453657730523247184576856434531334180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569742895134939208502703609985291365667242000409340681562664800047750369267010067187565498302678403949779028498408041128649042737318787323574923351577792665464058755270197331741525534369343335878177439476676986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668328626098116986962995732918948031309383657877203054406356888087392173364316856301974958824077856564691100584485063221748560278698708254492343500946242878114247925570928758816037133370498944479355413578617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823169084248835355006567840024862288539779059190210100832664391404237858347141539211252119664412719679850014037773781611395469455626393439637229169839703443161802263801853507727479038358387760381375783864701213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489941776424323787824512750976245752855490091949663430056325042158247850394386565734703026506980027224965381622755412581238300224668505592701928095276632080553239136074885985495257698995079276140766434576464290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854299804227933990984630926287867918884474582281838491541379025757617305573721909891733580870609521181391392283701733047688180850991710905044401302490736272237452998124794221658811858963808812967892860271735024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333169546753852570412755704075586258683249666663999607717507142454243476380734993509255726525019287640864927618497173045897625148716488591598951255375228222955357809275515771773494254494064636532864388734334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322221614627280225517275940258914049567804027668536835600648375121195655603792908901749705688289249537680005511704451470904027647709526612617891164352708494766333633037504762668181349383168469838603671786180757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631969376262656339971438859083062405002210685624839375451664538977952645501454384899174219683121931401372995118410097509794199237468840954250132123647670753289568716490593510289684443170331513881484844754291156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240926900212172351354308093758013216123137754512348729033561460914816427581049952002360871359854964801275969333726114878220482714165428610972873853149810697327536968559132688931246588639737786052796473145774438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852845898363913292517937062540150226681735964657598594163322441515757367266219230425695566601862213826190880192581203723881546007760038590449038861766421200157127662440876305292839786002937708353109004391865881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167943285933431962812865551608452919059142677920493990411896788778786674303929975761676465546813424735632581831341226626900374833698503187200117460321357251155487510227692201433444170414759365038920954549976990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435897677978729067940476948112679095135574378201752416467534613297580009812957790997270711903936380944971395629625872682383589471854165638473292427586950984276737772192332175276539686606177282371596570821130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339375254667365082843965540113896630167639046301783547536947865239365547983209434681476337898406578472456142075994498977412875174494581453465738378997960255958626928073950269927756990776084920221558974346739263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545144251812880078499151418500330138018283582919167951015135063258915735687948767419183823306159137685922349833225083199955278486255059084867455046951602420521525235667638266643206244011346246184835538231919030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282424069411322325689953200039030202196968217386130987969800721311638620390327297191995557705918946517770931086733435970190867546375077749418164213662458712283625713096904252214240927414444286294676411115733390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900780179277820576279424741963951177750945739527443895863353347367966070550527012142544299479080491346447357381092368930786035662366461150744159419230799122635805375263596249358838854994535786088823490647901666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372180120623481940467735151101150135753039355361350398387654046363031729240400443934542228866504375595216796385599047414810736635762226932664330642246622513619647559947939447516742830393884953878608666313656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326761335653050108925597369478256693522289815420801446620485501976532321021816166219530346571841288016502644831777530378575721075721672703735192224031414870533281255602523790965285517106044744791180673197071002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541594568474016733761993444644185952484585780679184671826721457933027162864842332549702086814740691585705248301426251349130131793189738382452549317175403435106305944151858517993322891846398568766128678082982141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208764932824600707929518671187707464164573645634222261847181242843835488266056541755904987953693629595664972541183719335697984699399826697082328312099109341255994808198732203868645749761500731501308035940504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305951772290600660895813030583131395588588048276225962517551839426498063120045127181001922219497057669748844596592692997691620797266423414339698096085014545299116867845278772258015085742859764318050407162254946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438685580513595228455287596361386027589819453100170760894427332474687242958911647821885362098458294683030407511008305466766121316949446563866233697314905363048789078832874042072673383396925834828135333246261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779771500834627946440936058431573206378347619517000016581060210092878404435682065201945270285682643221760713581601752221973467223327780274398943597115597803812762780652604670385750855602556081051666778183826369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091747041610254084248399240423509621969126368120916434903792669349222546351017403410154654375283162070610539082122669353971414467016387133919572456201351392040509186147323218293619518912364549208823904972248828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785859655730889364507857936000878628686633807976368902807806198570100232244772514039330322119572056967186423880232186334776112599435486499244747516611783603166952637541604360063566323871059279357921756871199982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938939769355392245864303588762315761562586158746287281878133711235134587883785580421697764398525992789049962429065388962158212221897887811625838296590736324849697798761200713068188337251900370377403487225042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553614236488414816026053774866149864110283759516290999622091232981921678339239642561390727753657077363937251198229736967869246891513716526486975965134435767122826858375314401262804184046228693588973582463737878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363211915365810872552754939034970117953105652743688889440854746664727270780909808046997309405202816129582446065629165507696802356145139785999535614491856857949608990228154099318962273521074758244856724526195100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089892104620610303265419535588308434633118423243266793502469894057473910493235573872862497868075144049873814343511838525582585965084861976534830516557746535484925184706235846361128961231063475613487829196208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207593430425154960471216560638269072668810603281420474122008886673494151799724644431487852302819566773009243452527803547237133249811211144752719605172852639093240007410085041013534953404377507086826929095896450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924620994170065952755234994560840888352771199512564117887487755426906953789016658371705059760688177908491161857021874607039200411210127386634258458451236459384881049049889171246857392696221806481134103477999102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493776431689626073436458913015274465652114578614155770992104933437132765485502078197577561301902631627312439722426741466016940435362112664762066895571814714997912220390593604531712953095554012285510811212102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075373370460353622615497103954431129334077832390857018090461357962884855271634026996506312919099426969596622558949797562872128775719854241967347530158746347073305073784579614535454252064423087824084140807846279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989821381826503432240130638574544885493589707048625142787242965210065664978707015683883864539959036508017111436410426627869672414199832654733411128487933093439580866789075434070202679378477434553526566512929013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370116668658956367315052216330410779848867721149416004662110658605248504107954794838142514049963682497073968941442466671748736746316851704563577542423105150580986476464173910628745990473792488810727430814262952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472472855748818376975818953479390880198458062894211236113335463254004046653571731667323865207845030801661957708090271324118916546201980708955460918723854372611387496629976665825231471481880032379500380667011859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359342678164048354162384967924208087709963757338733972713857005101721639010281400619964029555551092051482372788893958622506358200576235586046067003335451488830880320699079612318449237973339003311505882948380206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206511712210563581095080526760824300375506483382815036583507743940163080243748097984829566487277021341700558911396621800935230435395488825590266709000657118853359523301307008761904282865576790762169073394085607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318104087719596578936089006009298571878482454316218024538611683785858623451078284918216914586433097247677113149590308273461852478922159576361761941580341303131918416077594410121574394177453130001079505644225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196816524092843676630140284331236103292345231891837022303444549741418863973986508372860686169436251316559806429404159609558281527947448940796006704015606635423305660888224109246225581873588042827934696642062741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444354531421150067268251668779506672541821696486833308233724458549241292167319098180229151717027639539076596084501594587459760737822363718204911724903037217284752147681893828285852418664014070914099177883713956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287502908324448371554662484940386152485353273663548381024000726950375367248133315649581319529832958248945699470154098386358837510527445038754237416350534548439059129801016033702406509141965440640893099287456350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048909954397610309447012230170495967791613454602409207214946497104487480382550964755792337840850157046965409260993752929750657563244547864017818208689976035501204605289875237228409656415401043048746627607199592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773719461371921651640018071110326066546576457256839904111265510326989847762004945257320763366118794668546807565557788161683365059804799752893885934462182727482769757353481167038511000881206002684512193161349872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335362521398537214632713714373366852594289784092798477878664746644957883589668082045147767271907031262880771077178087594465928794910582812751317845119390219204362173999271041748174735530055149680713746137668261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118767390473835823972710206691386867582223407683714025128786024336013754569561210121118668569527576098387624201318060097300151094877041864750146034719095600164459132581601108870034240951086006596682466186137003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181873418377266831707982236681984925517311140484292263600497298366464717470320358925111903145526378203697482737644474657963470343627745210955607492099970685966310831881197052675407608418520990745264126830901434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108395180919193168647150076228549154633210029492313843480405709777013982744519348392219713060823701654633725680139350348101212266051149768782946285862320643474121126266335278215774732452483124135428660441401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493862378544571071502666829049614037984996997990417731453498520525154680296797462648196687022861642312147762924124296583127636615013215995687556303213834957850419502366939282044083814911150686568428096030448529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746124047754171778696333861396561788596483175635190236538942860987981324310596410750202204906039359870915954779421380986417913250939151430229182359194529115029434493134123621519818215831203202948600394027669012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564936116459656602849112845526224785726874706115946260327304926038731909842727022302279363717567119268583647185781515513352034020094255732570241356749792983260661689237477237909231564483699398221906223959835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908672697542090927146372479398724290800146596030612664416602228604050721331815082946098885070980566227981549989279243140532399034861738080214933410263315505110372233887514816204398816296144993711841473065439725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769257186263068174611117896507127338941343126400421900228426884632219249602699285376809615893194890230425833901286085290213585525352287293692772573112483980587096220893068466462636341647431789867000474061566857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600823474451226468172447913454112832897445755146507869565899052824665349909387151111696795153643282615119827898668897109310169591041784502488287352319238448624226362973497576843928226311202000471321872017017837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248610761575320195237921069318224655177285864226604778693839844215191391884947712040124803222614617113859479756568591174574724441827556436675503186173710531284061591548821249719371730212674392008204111754985468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995341517659032938402850692199642609108990684290371284529345494907934984037039501594365634463139951298245813335313896483039546853777423867582387995950731279166633912135762293008238137499508804241436770634118679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656057785769972925335180744046382897304361213124874166495577320583031985264922840033821229619829400035721889609222760768921737321375612817140127894768086018461734761335830477995555701108465899184652647160290624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746653346534766832852993058391752919256842294613330335029926614749035530997059294430175663343834322304415434370347646640492739502658109126488241517806384955847321292598486391433780405356376028060686127816888921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530479137407024665888585517326415578510827116214091911502018761617581702513117007944140863486314831905529615541131867774760309553999986080793843749762273037037169749162292002183000135339181299918296040235929481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984014456964949854178741721231360779557004623157574070164761282734096389797697740198761601941576015291091092531227618383478679518524193706079791655907057515180512954283101853591731863652920291308420578073926757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465327538441719332482103500346143870064257499982174252182121892042469834596946017145410809671735478479028964900570936956585073602799626696168464311182371981949954017555507937248780196933765045134741237023278581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358183139633229783045192735420001244347701439141020280583513761524868346540092241485555890737202921946094967830938047252254271539715644613932071756205105747947382556303404499840905518931225258151706446913599454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028639142022781241935332974216945094679545206739569773828062800915341955720929620870217816235957315398580494059913096459784367461688033276247131332187163639467180936674734403357555262197725484420249996339317486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558396530539242511338515197295715072567194931591445438867480941270092974257722117019767807775541153146444158888135464046100343675463395438136573794175520229837046337812404527631159587874291541420416206624891261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303319017211530774818159753187403206520654666303834024724044364192958515662077201957319351948859162981533005510527995254001092334656798597064540514291065710504302628479375935938805412008468120716572595896827794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055565100268027923851679503365206653091784354680053222118117845683243680044326659025462859459910385475796520912343895032510595830284514501945309892327719848928078784554674964362756461696626183648666203671557849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067480342358794378816611199895956667944648382154771584452235751309630861325983230445664681920972502934490357865898888405205528878640659389827094109866215273716175244926912647222856267443179067066051325033145720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948115587795504039408651223604194975793571897974081155637346720742742415773774044410912384855584519673648350488868309931389823442124854956202339198190060354898518044067135803314087241326581558085633552923565055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378463864081462097321574887645854545290564856934762540928991066919225602464254529100149820094514753886905850782157499016423832582661233303084236017133133019740264365928105169746006112974134995436114150778901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927127197382253553963987645924738369326112803742994013875808176175069360473808825916076549966028549415839794291304417893741349812851299433175675824407673417695102424433117320805419812250315547648257870165086576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323857532148964128445650583365153439839435370632236908681847489163408293026856719785796604160121522883409864495030061363798475278879019534177434844467274800436348276180823399161008740511223516596774451783081921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565793794566304849953425828271002028745751425313487886988808012391825275474862935920257975002818219751009946291783785110346671609157650768942405764348823245410625517145576852355740815455232660177674320947901564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387905323204787679384881578179912075883998951182420162549243993752925029268338089129651247232814990269823023788861443531898799215072001787269476593216105185240507686364891235175167193707507200178726947659321610518524050768636489123517516719370750720017872694765932161051852405076863648912351751671937073774216243588562940623594770431200526606256976250968421781211488829880026616044059222329331624176122908743379022287804561701357723750619521603426862806290537864968871393385712562416964079324475831369885918272999275782949295751304825043666028532371402054964473380738245775558257092700759153582136224878739519806447536509228338732197378945098948812224316665010698739616672989920964420596817569619231839866191793408474257868154615941458938640602296132950038120038389767450208633855782667988106569036999081567827785163782934599361943366980652979221522153666288839940268038621838784138954997920072289371169507757061724002344872898683808889469325821863378234356912074028956871885668709606127386219349873263224096065960699176020054536038165896602143871771287553098370990207133084712303917975574483810050683280951189329272191231654940906640214568359874463216265575739792837308702860612939772368385814919939258415742549146335154820414128505256116414384738621579485025909591694016701922227152051592446384786736844034101976022548505859620374520210340195867216081712701926460704607959928713121074803511882506823353044969812655209567080884541941022535199131368352911597222819779651917510914125749066752719879928439903727410645886716981183509101205683498176773100954846991006642170375101296402795266807926201346490826570837312730887703498538168830180415910735087802789781444525165407708127488473796550331829893602610515170900920110222071001669479948606498841609925577821033292542220238243161693794552445077116612781957202899490592371787630713791620773280519004359506302783720524286071686319756831994495359654617582379331954922183557140638217262170118990624363016468349879943067324897484029900626756368663934498668702957463295592763582274173904767366468327098725400825658274079373013421250157872246935933602320278802133447547116925472442788234788572020478481096682495732594650693818393289944085629329548452346954732470720957681550003136286818305873597665524456292333709800392024465397081980880975167759000829452339338253873797516636684848199061917189230530293275282052288738997779857757464433066738428466834238197778223941515224363898742495170106566785302676664370854624061450751098238265082329219231169465936055216243701274300239492460008464419137134537390881710543297199625921785958368900227535469344199270563544994464648463569211473954542342093035095619125962942760332314028381564195812399216843570592611552186436729390811404988429954013503045826166856151191924704248067778748838713189871896738261924739749089221696564899815767170428901744966620596800868199091956648398712799600060660098336650850131726705066780738105362533240436156109801108476755494877494236585163719465279328497990577018451049091701533568613632443894879659034367590349560021664265581524443928278722717359459483078938720248473420322290052133606846053129294097497598893201349050155466399788069991700873715889175956776894727061811503019647289132576784816190919388459773052888173913796341910139122828818689576669158175066401906642575911857638875482934362992117191271054977385373015577838101884441860657830592410452724319669227643946881902302936603689392914352790067834549205228896117886051875408310491808917759260962571182883270864363467278181627472557148502535750935601944533705704297279316518324369707363874856092728216957075593521798282931763040398854389505725017946553411966438406118328171225805809313865366901632341550423553948803977100712507041056787741620258599084007176820989414486746229922762892025508580816217315083897553884053494279190567344876604830970791086659225293101759747853825571471946452962908784519565174095947894396337685688784133633407353907274376637220528022445916053457375406618371695805242171800321860228583753225978883501880423178875689402319751974374446133525974578974005546624424324975934404953762682364015057347269539801101002565825131195753891584938212512967996772536212764607639106722691844111059166671823174812066194772280535025793861898710732931143196219558359007573254549265440534485876237997048696398212906230465260237154569746398218504024061606472122473862853691454227582815893032578671920038152313070301231450016203835585597084636288728568661829588038151412597924271222800658072175375995609753028168132431908826758112139786458977991567077123341300614050720737874775422713347772318791387780604116028338928073229462986109438994804268776309041382820082493276437844569466685596913509728092965602968378424831906376648975894022974765233737070759029573229676410744477902854220571083318641606283483284039376713381480941530810038363462098674092314162577259260164241310768383853609677439389645388121987184708783576028465758500662643013183563775983439423256319567388921786474251153914648306105617618522661484986211735299300394196267978351154324719792100999023599501018504522633621366295417587904115529116300595092988709372051119953209519197611911117856568563145823742527336348744262178943734255594438827210995525834404807815336301231817250476112098586213911950381276857684222706022880857922802278992701354502689828981286708469480858690773687310488241352092533779928151782807224730432956057066223456189965692940799043010318005588385154956003710153628833932963083886118375725134429296237436256902862399081808966747840721541648215364669852511183560937695388382477926820540355622931033982346172177499287611431071126186981767165101021328174843226860492899962137442648917874708005217789914597936832576908254470499557365460738332954455037605455616938462993526955598254814369522745135159635012844381657623878219028344778419434849167543322089886572510721638012574559205006261383235333100174635632696788299795223122133592295598777147842562152819660095824803979607418806864814622218467350238464996209482900237216747151301761618348664856900958044527129241361077448550164540165882100946953185167094965320283685563439427552586762309399026264688025210023483988108103139591567221675210364031168276980204470846827510216007652912859618123289239199898376154654015288476402389564008009111707771686632584715188865213418100963097892468142777674442490984819462072099118606178378827256060277489202507756549609224153721848981913999493043561686936215964291771095256950970699006323100610856485554482317681694918920335382593839797795520178060026150453846602234805842806680800540972724248870988991814030172108374085197168446555068686682595762131761853474144377640981168974620203712113186150318053481637099280510057939395818396053815727990531735646204725646756465733752324960442866627542283341194771011586148225132905747233696454593507786302813970350269335586720254206532019113645684278522271130499308474015508320553450220711151829250378245841515954238572909205590931555270937157304365071391970662707208366050653592578075387996624278296260271908636785842034261794272927838720742270392586478996988852017285437329638914179856495498712313174210781117458478347148101130220066918811713906332237746391442787135013391013614654758235473132163877978594229259092873266039806170514510518935261384635649007582348632915202586551031103413814049101573516178860757643964618834101756544414874774396958712593182068392921811680883559712722653711952674639135472889090102527777429906681680053198706232475569631647941994318772899895890737174479138221069168303144302108832718736937223637159824851127773765854395220664987630276981234613453697621047397548443980664968551500182428724139629300207842390407701717530874006211038869812751613311076710422656095342065627964803091959171222256860508660697491958719528511720186301457223111255958058030059590451780162091560033927158135619396152450582940942383067522310487602756833193139537061594056900825467163407688518738062028393764941416952247897644827415924393890738587033683110647482959165636319407597879773893685682536565679811940555829468907562097486397051586280616049553801992987901072698852640686948961003323272842034061884542128979432188689707273827362778501372701149638708846640786079426555525554856648253672623885530195700899094418141196819278225214743673023757726479063021362700929435193537520244824650445028177473530313055878404289052956536166955757460304468400201302583472857878603479642966228563383909385040595996338205201313459775949549591528249136758265577370863098534310316569918647749352355876985616764025694367949650826595164936185639067761340863449496109230852815957594732446929978437875069577965234066270348934399220039331420221596404753079877248547192899031903311360675387409926265876145829524546296274478253060713708610093256561091062901593703234578465109425415658486336759717141036824690682136459502259382358689803420521458424156210977125941988605174184609810521802330913491593055323640211801353993827390760960188127085700221614994202352285301197851514825409266951856567653410404445485488177660629153334239355883040977080382629431894438507702390408475017104093236868309790449784932389215598500214358700771342871584700693024716766312285302839112029615848332287621873127025440275098869777524186719725803984567834528672337262681942591376892237327986963699571947508280574929908016092963856488757743668130599330030106516567168643311600381784331809476982492426608263925647221085630282122858435912911420360327206018252323794629310925410251245417005166491749697850176586800128632544573787252932671277451624334360127340397859302221599617751736148666793967656332219514934298376790374930825170161852849338344242504183230302641005578188318544289364087403203966008892343871002340926852388496732284456687365704234315669893811311708549805563342411090390294020698788366865009641636917052815658583564774755048831911648430645989966327033980010970627143154871743704811217006209186084162459632196275818916875947150823636892761717485163145845180705435637970723278957450538758447100756455874737245671626075875582631624163830175894812372734658328426433498421199067903327699506187886673063449032827837648590916868065398440393171382569665959236573482235687609504600206957367369539435373448928789454142994492422965419920687071717990820275112322883020637409332430828407680236599622307450723954829132510014623152283856699636464816199306108035011934098551287730815954501549790983261007000843516322091409713166839050930777067825793848915921320992865980751664776274042102287069580316910197690665849294116301449041755241528407985584192045942224722408579545248996614996312956745993178744978341350197476002485583093556978815369731363214452511408292841812804502491992959845617297886498365296717374065350275757846534187078421309805735758509870892321833860276680968786744587673937042506105294559344800003379484411869103438489819927217800456984088256180027740246971556963453537058177132496654317079548795257766421120685694340740736941652110453017077751449502966420150856734185613308793690799085988881954177426188031441417486935293012862868769796349716441242177380019690974862799608946093642530679104174593571283190402983113155059303861120619275400347429960129769845672856800757478682568526558880550446502824723406212267230987650952467955511675760755189736710818664873391355547303871771482599249820906556362463688874428163547597380200927033727972357562058520194887311757364152085688799839625539506720457656370866786849616739928990516639547348064688416321612696232140430043034978793765895525591261273349443137493187558515220350488771542061283232155425010369584201177706058113108574067217688447392412151890674297679952843460462085104229892955901538861717778596259659024537479964480573754259033955717369017939751600199875836990940353460200600611457081297272864924415558859750242749010199752785695834533449432500257802043444408682890750774396173670553837615787863853870009535733359025946681197512373898387266536879554300184150448072052764944570257994686803499492941686747104745236313650471152698278105520599626500224544073428713991949802538333850588539364994173363696431899803695321146317461717020388070866349064786340422458469135590424245140281425972094336803940426469576220351976052537466919686468405748522732221411263468200732680991283596804337124898651248471333865999581557036241284311923713805206985546305223962860016932609247618752321257009959416454501759791304831585226900924405531186581531978459314051354967975019715913056364079678742743886974318121596332024245369509081085401074867453223366948874174475845601897763958449021749345971047703154197947217559031048955150713033750922642894743661501146171128540489836287823217755403355815130890086002311190892831719794615273396398147557956104816547218228209282412622440866173161182953146270119621366199594108793583564320932964189356289507521834160949562866054760820233943903693829441070690737842159371100843550809934951258480556142602794888117357782314109215630977556334356892809062401470430406809674541428500105312911014407193181060055619529375994409816126454374436773978928455823616806573056868188932905552483777388697883384821269003385525577296329485036257241617945606880625056743983435840688586527984713205682033268015840118612253710729945929721983140398249546430136414120937944647846329673080412403157916714681071721546579759508437906546392689441643670202671733332142868727930006752568089594724605400773921436623774703669370647989280683436306662357354918836306740896905345419625492185959482963529914425068124219578493976249362699766843201171783094789764534282159211054419253956738906802587429523470246253627205862445299161425787499201547834925160434238534924384341030380727377077657014743734358079845112149890213877261130749312518484971289917459095003932190625680772393254545546917673500211427825159153713922475215102619575181255589919223775605562518625777871520402423564300801544064737868647177454853375685133039577305055429841027452084882456380181174324411508866694172029225138714052593329218903930234849521783732353344653262693777473250410920550827627013601076268805734928341061501432117912584109328122674911529496919441405798335403820079492052726207312385833278588756477905672110416544166147076128836100062438413053105014008101079875557731522504246358724208134651707819681326647305265266870097539010235484005431910303058505073284856662189230736101609798730109604578786272596971821497774593191217242085520383223097743733627260091079170854159065400695404757694645269352738958908946566093553216942712942611401893368175582123366092880936868361084129593136897668254634161807973379931143491994506197674140383673959104332508378960976546321634429684475047180877538796601159469105846985693463154671519673105401894347253273510123305556649244625308979855259889634444538294144883825709671236053389198293136490349913321228421966087365757136943286363383874965694154477107061380343673939543299455488946044328621170422810297576490108461303625809885204445652889253865618355437466905075794821106981116094362272781719468844223901364355582252243301409371154840113662138841082479809005429724928690877078639433835697580891344855483753767771965895936587515432750294934011636286284193306048171093923998791900884203487294343721494612397017034303370791698316245766050613624590549183588052452030731298424258801870960784918163583376321417765526484660862674494777513116337460985326156771682160131478190445605770892030801852154088126888224610854206843331279758480921954444388966711314446178931474129366512819879025932919456527368734483639889338998436121168068986579756748851654888633769003537529198775769308105735517395144379527270380044704900728573092526263167309907400068490459975878713209353348147998072978030685925274921540325080620629679368029096365711965545474983265755760946724722924089206137105621700979339927932066567094589212083904984604758648011445523278136028145344579543873365991854029550601001878962582320644671450963980891996756614659823701412873664688038594032665222408750886052884106719799914085448700729302201722026030478638071088617263141531392374899477819178104077545255536936054590363781619286394200226696480397586822634537581285355079620606463620227634100156253911994632578678836087025243725262830330102104489432622627532207366765291091628199888719161678669769861721068950090236405929175721859458476306892124704365027536328350650043346183189703050828391535850605251722344229331896294372577616315222687395005813591563799500907045720072609689883738753698242621863149512139883571673563880630056290325475145199661817267782078962727991656377480299102250947244094198014686901886252851004233665906643076501671002367873518980417508647603805560882711984788639116966057125758111614332203162398619539960810644891151299038321892449671151819857985027704469785184162807329531875221707375427807836745060608436887769304983023041436468913983700826939640606945628816416952916654437390847572819696146411957158066368813124848782960051923653816696914413164378212808037745822319142506653727318660158555763100054588191460863415120134066056861830539910928422209722277276664200709987582315907629439129515634967208380989724723042038732783508601474116048285204200743959607793967665745457415734381437629295610953115848209200019968349222746222332034922978797720932593734589318530363220021852332922660432632777386992952544003746065480447629498272404229146560052904598661490530533034118423277471347528763241774686005103519680259504893354161773876502389319108406652138046674665296435771960522892728790582333626717180104787074150978653274415552281550979015314325699141091329952502769916412184798903534173418028880785943704747003746871669807291369878105191348231743199718175697324716934112404219323832375815834075050325121024232721599976225595360817163965955459215200626349383277938717450987669553428787897746644363855170650265044857714758789516639052612618767173875404593877592449369724687022198468051519182603434146351533751735439834658403665007800825133761958111253960595894171880472178746360466850775595608766461497997590725725466930950181226605975633832045120846386446499477556747110488258186245181148216024173113511553376394180161986082932584828502972156412493543549370147221837149093135274651614042298840347258735848047100304971036786199690396640031890270141021874714397393047966712714696745248582196159044358857504747116108355827618601159886799252327767007791348806270678430582303768443224083728557775850821627326777552157538549313918894433113709718797654930990630437083812107972731604146887410442732940307277743637828844239775948723462917328964323648950423030339525477232852922518209786329412792277610699764839644615498030391036874763670074420720134868042097834465670780850085124892609127081572378968179538971471665316354179274132493745551049067708830538291046609861801335492736471578823175170229529255747672943807184323528278938787305850717216987840870936084891275829673184503523300910082450089460001683728969855347815677089860663702437991818712713748359424429636432094727572711041804433460130510702217782472919884095444291559247296793147664168646799094563770460369988700796128573467050871763579926726419077586482979580150961497179864393231187059023097451683435712523358744257165025130783843967812489541028789968672155583518182197672923726750882719132592890457053921699623157341359810162606343841974111595598712194855707915404099126084315344947293618259714666352094030430179436126307970778095387707949828645366676326353342206894534303062697485729601880846564902097499552566734013380282307886298068187052054125204011999043042891991240154630648960755234800192945487528805570650554523548791789559874402509130074164191809399729468221035701898118676721549044950284462599683767825168872707929533499355139851172380491169556661244188049351821195423145457932954973290115497632797004257252928851676055670695788818916668926496278266068428178885513568220105986486442689731040420642038862021415931334335650607977648372861174785410131819538820963263739781867501567020103516138276223554990781670817625800632651909072309731132612645394806127461576397469729038199157580630745875385173348334686076088964622701214040165795597908155136431792697143278116000395092953053015664053854401446819567416891439500506012989953252062425640256999735405633568511706263129378820965576305578326756161629221703945185899593927795463337352050168898464364888207314613992856015764619060882700521838829449052835018564065043364175350139349857051006350044232775532805166325015553600168558606321618016788228898592777398070823443012187649829882195076487937452732497757164679437682597865380777090931582686989321856754102218113706628915050719169240557175153729798546795477169440460872858340200716825587850350258068980279430946184672580186255717699914366692567766247888256367102390508929757982489522270941846744341466441191197624863088675226917379560846434163676355883085129548653711250744903732288271992572715199660002166693895605038279519066233710710296452611253548201808162340593161238338327872154509090544271980320064422532360012498934484363675937191423227785159626576845253075848553735830841651524777849983556099679145290553712899338041735803322331380434826019161910280534759866238541512038956061132700556496689281316755512979967633665355404709079398886689530685781017330266056885368956021180772162258921919924311730489252249712553122821175882252826509235822912252041383700828638795994087533142292025537883192590178881759789430772711316048915678508678373881223628875585526611865733674460226117363328802255620686149584672266053779357525558360934098916382963659980073078450013699458821205197427166295188936366178872451938798839149850746367011614623559091808914648782476983237759787096345593154570680055282070629464310763848171836412428448832224163453064177764928060031678970019137344145995290818130082735712024454178146061237267144018753822527453515155242450079079753687991871156710284530318732656311281918735814205042307746297225403696352335748306562048561086409342738331833463432735127159264239390049127973028883783463744236046441965815843840531910829032323939150063705253777010659429219076639318081087876557596907078407317323973235506344135855674600292812281944826263869185813672160413954633187907256169308154099694376002147684823666895958338644584339139734195773954458947379964993965019731801875821543881858049244015386570718876787890605894343970572439680676623307775021542477708237790441269041207606617175145832906568124019088806520592144597223687602261730245554637405620748081399377467009412522215327344884170636815244358256118696626136383402928664497006603799675017937631676391806943767843386214908962356182010564061401237788509883566708473114371688891394268479485387646650984117195433702892158483507258601976515246041543560676274641178103795805511058527509424472965571294588954450204682256720106209862067718216674868855967781333673048941388830396566121918933058714047784551328767280301432209927052902106177139212773759052612468035783233612231672451314301832827898769529904655069884850334348398335992274164810683359631797050404801716357581169611089887526505039455450818904578203339888055273361740589066076256788760234489965581821950713067982798437470147130567036780400279088826260968751798433062161683649757733948961813441882416886502289967808162797562569227498087402088768810359436929920395726561305068128838761441195918624002236445248003947999424405825317268246513520948959665872693663488401509928375984646475342403056155906510544916912421860787811768003899307609069048350672795121403003404594882920845356727163295012007112146837654494140706925962143328567874574683801853930454624313698559873264207073373620952682533002246595654211021883163555532210223258354198699266649135319296318782349014915870014774992191089465012801726186584241199577478446380888179235896723654961582275353549969841302939493205679621375776989665420961561839357548510610187366314026732506199565814384095884354592710427524744855320153629002887902736371511709761157510447444857500232585814856078898512835095561221244135323878162333181656119292576209991851687924286242308017058600765585346450992122213862919320062916671040534441325309940503148420160032899923191032840172480360326411739587737364393158054756344611667442195905341694665636800499746089176326163936997268005671191900811164600029600999062976664950801085080051586703858197181305523173246301735287693034978985330460761267069151980521041879216938619991131368284102584387483086310227556652408281412368889519506244729375224036690315921818643234026919293237688715177080767495238989921492457417629918580433486296060893631106258100141380630601231494362793068733268768771474454961182419660371730117322672115488941447158076434636447645759070334085887937938855117519467423534045394122524064570712144659046656734809242615388417502636499676403979640395064536033058467106591608694936427670638418752507639689615603173119292686338323867446335181133083074391303543372279071410307952822716588411034443485788218090802820829554428122003801952660218635952461056660631495761270251582303335224947078904661050788518613260070870531252100924188140333110980343254472187535643394322040465954026928504488556461425105265479584721663057299456357882715607728021482175044787001124779365707056730989211387219305929058086497839863194346632579224283402027520796201076674604694071705609535133339937607492713011765060222240784478082149383963988120054778938005665780359904311487101637277035214494728448065980210246296286374329333750053421098402485860977159460346265070892757684803201836190549885228928095376821315150435582517203728601695960958764251395013822098404961222624228173404340280893997262257739330366102986819922133775791637356034537807550181325596156935501032832994238499747515243381001151950121317805013879646562849154332489194337183269470192681676759606159187889763652603208651265852264245241199590189818788450828769443767663184922384879924137400767229406807310528039535402366035209984205504305921203882755655930480839116597306245017725252787907988546850842585551738383833851994344288915912253644118669644171242400135887960721910613494230833029789663443088271107467000523629974326102318027142266222618750572543969077381474263522155244832400804375696699071029472640517803015161891026800926358769818418013034526647105519950731606432675504048745317728164797498493168163518881132546149964031831401208499997545056544056651148358387174381071044446819957363462868930027137176430696041478322732756789030508095769143478308670354016162028184911441232008439992821318184843322881342551248886686544852708423042840098831385549010037940264844762363637536465110550081029406609915248147926317308774406420709539199916755639316762475890832242707294829544328151229529031647506098107151709493216616813022200848999073351928484090014332369886937917599779238728056448586363560471696443660204452597048682215144197815912322747578772163986575276098408998893737775089374040658456115404534488982635679449628642247071613265874995955834400802449400525647531127582945824555238339938861602167095409039509622984369753605794438167782815663517171901560867850102297106693787721490988919368454386725973007974938110342945358118921302910485720499673562211673336635007643262740588295448615756961432047896330591725250029655954680487653626281549757676580277875590236787348162504245315702741835390649972371430862395364283337985258809365635808787587211416735820002378585791714654161211202603427255738422155180158746305776779395293678912532977700508226250081937416451141684737365725226777890874579968237345277327360629946429241699671550862292806080316787715019020416166302049350758837769066186746162964701677056344183089676266188744032970517788145243401251222679410412177617218288850815972164208384793333982956699403495937907282033978008796049701378070294014570618322752960348530283719222610059395644991241509277875461366823146128946998167258824711898544761466413597472404001167264640338329990401502635271218579913818751838215422530479921538890284616537929472363796333479312708466427227370435410768537912131903433119245063452076733343809168129039267109298757177148028222733070858590225913929052589740024375710216995532657613335185187663860276199700398052393052742893370901691023675207451770169640472375386382876543190430290357981930446828632045430189142160750516996685123364451883139431581404652068503559767528406209686484001463298802638325495627213258275734485355830002225513318596228864977249448196664152819040702879710950567775583836470750892928012992146550898465270072696571688974013243287957198217231190281099092249421069115194270447735875202660217787299739380432917832163467212887284336979031693485924557721759863321692291013129964934565694568312672848095842925093551561535868203373672201361285171957991790678887948977874155795078582804005198795143793102409735137542445229106658730078654625141882080807307192689839135049253775437442026570165148549039037849153357835239195091842294100795817946261304621688184412174680622072287104625149387649178333892585359415439913580058590242985408557250448942910311306684106105252152943640589428225619515090298853496701185208964643320418793215333668475009093794745862440500944197952593058084705730441714228077856570371279475809345629087704798834697169323551696059155129039465464919469769565801044772122115297178854242063014493599903647048816869639454598739566495684468008279740648593976288861542063449595204778764796022224814045187112205762128289512096424262439769107779187598915091696748849690140417814624882189920472153978970100410044519163746354849377767240489630561760857490190664199208564988244166592591364114979721105709200483463562191125920531594952077285728535022771786911343170950747417740461125977105440663928887571839332360002445026038759995174213594979764940400041440939868093193286423323138073107260523470222699550297533641333336376838307699122239114777055859977842874256964525973045897989161844009118754738104698043805595170062963032943375011243769165920722953015125432139405443377891627819140621551682088473634534197999887951611726102841063233698534566227140898250206912867044411690258204796576506806083389354490862114387382565994643497880323272175829269451699863126735875109548455878463140759717201962433708521996779288308204170836282188671042940242600584400437735875331070418881422192092460714913350296369058466448832031947410173461128786735179422094145466041853403015518155623214316574733266610798980310906817008268873210193645956178585173450547285898007872872115417256740244197902884322531541019214013509123867111032321373145940511561470672128959326381967580376907231303216158247304070138858933463663359767715470701977324954881451714956158891597270403164434951218597470414671715097311329473848085021070730048952123748421540389981859513224901441857291935709437524159215545692963115014493847033948930762435538342354395078579177058758873286872636137723131795763188119174939973645829559955961684714478441518985430774145594300916272777064006784526222188606338106724847269024402642674133907219353005842440622594642539483685654784505343490529674305897486495643892935250696872825573073886534797956973796373941631251221135723661242014026468319875234913753259196515806193872666193916051049359265271321692209622463969924533949416814876975945022756931601737297825225932113922797264469907870797211292701007289316414132897554051129860713004542449721998255923017335593991966625886284890280161029774147281472179960743046863683943583762096637059217800358151699129476731548326243472252980038009595875555451363524852923366036661334521578492026850615194920345290214617851420324233104228486352089687974218454003873494172832011762737822647963978467771365873511193020707222560037507494078103946338951998454416631432297316080844049828135430303833631635314540529914831642560125106820856569001603029729165846789183221058699489100407801076924778257280672186586644935759237706601999726065952554332733642503894798336601431993073084809345161508804807646366675290866716936206249287398148879904365333871639691167273697027312653742840860973486972932552788541993019041684282321395857966024873754065439260849531863413469468678923583360680339445576185648701132596427755820263192568099715894489345407354516693238449214991185549338282445770766882305254697961282244041599668923715929509392373211954789450740806774448900380624434575224611555723894226838593051527754976545431808349023872919846748693162608871792151248292476158935141491415890423510507353496796948749186334430479362520365105567215698882395203498052301531223852125132616644947370461248186099014395654637271017556216112211047224792650608818792187856456477020191870817409827426388517851782319529341904819315715640400178260080474641545364258579688221314712021950687073703931215333223942964710143388176399181150742155542260482199024500820520315515880310767656881219857503845120447360279692388489439850407766939191917803851311790463726457872800566499501595762530276734247490355778730320694669762067937109531408787466090719090054787150227573861562284031199979360148174018140726855934642470818651372676127973427764124089407024122505759128332044876750838248233549006224319625729282648056600967750928532573038883418242504410194438374908292890770441518151343279012631862709344102805833319718393808451124787757790528799614248096853758097666763701569484348743174757489914638891633504338362739885110295590997268995590471511291794555912698359429306738574304869898985594432619896425343492171171761949868813811537360119252837634812218777109439259322057370956269816464526459305254130817680476849179967094590975627099457464166873129985177713155886207655433151026302360849223532018400246442694982220093885619814174235294211012044888786517620477231007235577371175696454026773786987829323848846586854824307251322459971819517637820651677017349639072911973231521104508388963690034363456497713884180568029841405323097836878788733235745843716778596231931182129965442642274603311656218995807385709140748170907770720601258255372559881825540001709679090974133855179150503462413627962943375279803921216124494228573480554092996174221867552670663871540197164959258041982845727233943587273849129806250522990823041441796420186323933597564085626472114098710275684232847105442047692737227958693432551623728706130624894831768300595031627353927222155596037191260927056320900168844642239974599076283603861451560114679086719522744225341537356304363680765820929448168157562440758354209445041481836940072478719937160807471437048052724122720576200148265567384258527615204225756167756634489083551590403475597055278114985130250874121655616058542729230289933165473549907915612178664717813433928249941590501409236320169840868059967723646311800323091723144906596018394433573246799472136366714309332268725922769959786634219848604764038331215159824633481575389136213747050626776094939156543444966503071575601905256149343412398650086334976877258201426160358764218865753091740518241749178412153032223830041880663938545588917876200687881404876692760597626388508418767172390688215137534469074205279687593862965749865441776294251870300911496135284438920514500715511087309466495949907089979305234012957349386688178592724423081521590660649960755027237608127238705851213727455288861773544544959385158956877519518026877985648252026624094448618828672705420747504353679984584680211816124511917916408388220977886418275681058507677565728648482836037024932871581980604355587998037575747633172000054495984987251668856570630335287606809308159018141059372137856078810315129253175041105096097516542537103085517485489928079279216508267024775246374998378504723411487224038878779685621658918415735659396870303193507502981382895299683035730430607120754662998058479510773229041914306816287029509007188141342145828415611632764589797794318524467033357220151830080677300984342814598555943657389719903262861007167469115090265946427923755624937423512174450803121349987410210504026254115763114123064033738402302484473936132777143177832648722787200003132437991158454107320083254717655335778841973881119878308116128253343500137910973264580456753562692848345510253175697613783144368252477854306937063143255096407622494270969727621061679816307458647731362102916913190193505391736338772095930772880211384952253085233564200914758211321508141634559373276638164620996415041814279261478485611225096974418073994012186495761708774298539083941990118885877336373113130171013577790334756204439526260767797656853850415178002862202601739831535789490454442716570559649205222318835447428311193469603711941218609396474369683521630084113092122137612361931555091187753464456042937379215166896202425471680377818274638590796820735640934299433427179208028875221125433179011414911600479638960331877220471455192593058948693350499223357652070639336657861080859200577595735770605634693457603884910805066955160938106943662128758827331613228648314314717672115704619235614650037740538721762741113660178235855845173100298207789993646817768759805771969044293265641492888950616174327395453482331666399791748498402747835405359120022260943990531207076601966727432146673132505991961537491912061092648781953777906142535189223466139609531960625261784257158699243782660916171746497163472047738961314867194294824902919894191675830888923397311741555417268094753310273779799709817565045054736022767862106975404505926143883778151617925379010606402291673802696257343430464530042110425276623030552072475739306792726393713188722880126958554904248663228307022774015552803422055731726091592927513287204433777236381546602242627227955242640479069128534664743956703901536664482511862340278040253780886661135356644106913769723882365405370572032648513307118001886217776805979532180654367532102225042800043994061851812889536140733723950663115170700057138631530213293685538018489869696302851089301202179506470724877503209994836756871724700290558145698405144674694507188717376368028734735561968531753075661201569305703443098761497230689528664441564074834588089865256616643797202895868442203921819431715127564111776147563714059368640001035880263891259692381706227637167628748062838160227594105114626922888091294330277664959472497384473093376327460037108435907859976671800558687028730183229667292566511959261005941581003650892906260399978910764693101952271744645199443616999155564156412151087143820808868075229785081480228623413531843920566639711524608904813184451923149291063281540279224893782282515457682716245961176395668864617423953715865744626643996155478905163732521825783332535644589892905951926058659798671344827447826266678984191962736059352022149668157043655690416708257527445881757281160956148185722436954647505083028443075317077923557132934876117839081302910599183552262237468671157570593774909379757938195247331632266235982695699804734334402616879654751304293461624266134607473252695703114881469691642933690719481545481790829291072069429731875971973101542619933564615328361822870151559033107061465304217006688253379701323449506071416835268609881312272205409030946646066185857999914153978144847741564082258903540644906463510615433719400401386160350714559736014278623451486573479621797846757021898995133336443819291905300857739950452349349571896846127113768895759793323495332089538145398467702851241091399996240942861535615495201564188996212593005126442096865972528994184350366818804807529105972336008365482357019198685509260350048765737882951629237418327132367686584946400059670950677834536100367442594918858195595926902512393110725951212115633824158960673748007183246877841307809693824148291518956042755017542065174420881340145436070713556026763499597575960041036160961213773621820223563980101455924936015689714897933365854991863497304103495007905509710373294892197640588699532018966493350820431004885230594298486801785556564538971529638687139823938927886283130538898704416338748532366550562543023828613176831474399344615609310765384947584648931621515835889893391956732944334790390909645002015254529742236093348737748570906018648070516991257559332518203044120573389116924949793744441817210180048695274815824860757712217241382985252976703526885042133034637032059011127692708423122473740399034467618957001025917858966147045611886905543180001357411454538480916238456019398214576980154036744730933242141647275552190877396917417373506414595184607851240181377454588376298517906609425179969503658723513291154069411855800405756107804357919105154389529301786070568857811721742139155095320721197089841522154253164791930461604981176009994043413190991189215513651226115501813110735194067489641860940284869283055022119924343866309661229983761658981274730669004071331315325819303202814967455702892711980502308342949072461054910957995507893660263469846566281880554901043878989574409314152964143377690260506436409832682176336287098826272397430230055063851675289226483750950886137219833353460698489068556859024446788863364396043781823649316075069795253661777044807862852104682093268266828972207159109800819778019264952538304724636079589391737003693289663580220506598028533870299680922286754271291338699940266335773608637540472021149927333995596386713941415995063555038162271317992876143298924595866321022805072720176632829028139513624639259879408411977424214784974887928534813292261758042969536056849641633358836124647760471766303398537726717373232324351929797334237646067007259056978477822590102247186184955108700414015527634922430585064979174699941224701667003101044327626530993015284206842468595235910530969681058431185510376080853681033317095349081348831311722359377438741462183926501715609032794028189935612694496396714332078290473191666678085182551977172880062773545399159278903401078628896366115708075792637125157532125643458797675822798605621785390463443878260224769831644730911677313769865439441397481344800381829810375495058853983542914632275329122606239178293199621398691881771111842441962771878992305735044724577538311943385179322128576603521216877901140477658976778435696351365329151493096380391047545011699675878027999795538955855005904553329793563702640770333481120559679109660880465445819911756967335381794020297742084467140554762538001665796195719912620080781668202885915862485723615599401625547770791411160067640782608077107894734372899115676130685073224963159123163419758846276472881920236762716375194766953325420490891610249164837334965917270800147115271012908902961211040472462065622820963283626670888972846484919450548524147558133923773626921276628090107039603299462627250947141176912142913353975130151431774671685840290596862221708011103666071463020620642207396736740275444511153186803573711970612632143552346855544382456532551949622309244222627616181076353271218486711038748633241670789046885223329211115019790098723766740155479167534474858911628126868673604222994356076826978331735176394113756818731185310939147331613471464295748025886612098433336264478923277992171893811049025750898332957523113851163841181019244991329300877847253627365880167927323911956677377346029231167147252754387732395409644074174493088103356901689944732650629356812407468591689254650921109142316433966434965355399905226030471148711750195108603621437887928407449825270332425169177953432393380537534154286334492005727579681918742184272188588466626602813391591226508703295562974312100608476462382406120209740885851097134502445345626967484521749379519983660135959959804421055339305799463541215659260373954548130709002681616473580753090700579469859512185766928204335931333658021043935801610790827942664487820352801574984777718753666388687146928492233597970201859216375263706470723923280711774975523653624170626315463270059026630402473980453353020409393130497397130791718151488632385160351409187151727259632060397751818987737942983354896214929883065168797261732334295186029197912354209146617618580812065785097554051812624547853587142349872282450762802185554164393735572873413177079533182641069580231812678272926217247904786733132302602879014764854335809993244372349188499585994862583067600012204733634466868003021774428308956732120657310909298521268530829353520331626096123871927047491031694115164838847479745677123433557442981268446143275337106037702381158730688628896939413236300606050428996520045106037486769613649172511721417104539723698376574825092862531991761037960505070047452751987069243830797208133651074580862533987045295036577394794375194325536600142105564641482243606164677079171658511765610859235634609485497644779621165511318700969902914073151483903908991815918578332650277953957841825197056152467518107456330457082959442889150666715929760412803354745155100439949339911357400368108214520100371663337695212133753239590644515065233379074750428578159695275696181784704238178420315992417112157281753138255289908317222708031933401849974624661506864137178679359480593272851964335736880274143158690076520872345466373639831869120209656207541348874115504351794570520219208662862157046501295951312793744072467620419226655674453334447296817148735449387338480166542826423783384831756543833361744087321879219971430971939075615289979919334816845664869894315760143802862633533136185723793167236606367549438005252967139974035099407121933737585712045559496028444564046130603362226362162934122457615116541938791684813280962469524445695462125087911893539832219637899949870575517487718861051045258709120015502718111214008330339459997728658704523419166730406855700471728611726335884968271071745003538903363106665809112216112279535205973563154238786279221174002792992766027230910087889644867197751064485285423676068067832870271602149122089073835986791677907984654684765443288633275459268997647136118219193637197094309189760958933074195091535789981594562681740310911862136112387032663287459251238017221859237596420397178011973301354548630311562876453973330103535199368908917165821184472025394047093178330601239641672709312163693791933239184259773052761479229302123013163652956137623330528454637744966783855724163055532861053275520784389404424723308700149400756485394938970856366624723511554968426370742241985340721884331711808624785109999817623225805812020490727023675155996038558466728397347325959612710449694899692807040872355613550188348609827334494211927951159638914217013371362540595915840065763710336218594354090721495079719264247416878866135096201313031939816564431842319103674142051255686332809855207709323995574220458372892438309481108423300876415366308472416897637519419399848086392769531790164372780297768880616249084193376410364509612604065127369473343213647516686745418754235332490452514001261991025504942206089908653489121851977852080353829793516473616363948528497562849714885627036425437615253034856791421813834154676563036293594327156888851139645341755011355523422660951773817818038938644309083053992738653198839237082514434976695795125406640558213249534760824464237959520467403716910402286506016440118821281688727839234273692926062064096409195961459043145172341616179151070617767174151129700974362635716917980979131076075544400727482316585363917076912591900555112850732808167705134749074145011950248108427677735773081036084500375556502686582708949066409611462996904292269838084349681389149247988622487167128124089262797006509374129142801201881922065421593897363381932259127071303848942162931911004907149225362821862035617644685446995943076419072713387818263384790269051413488524088341597040931667176458485165390460010963472932317024526860807864918007702454260533859200916633150792778732483259016044217156687494057915189677115913189275017804451824993743874329932914355437468094683402608346425268170735136026784411711754768030257828432741271295550926710857402304746960026445711893018058112189257572500241791066473020112946937549533383927107678381585580887567061329996499158939499040874977823550392105136301646716340862269365394034567695186527752685603128680881568916991604601367935600028878486501738703611861366168233700637624901718703548391653008880657523737679906815547888893864623380433678814473862636975144463533151364503365250987795413093994146760112222850127827345575515956198448726728886216911391278644418265010715934333181605528809809313757602195448423668918140487612969835740368011755189133005722699475919228724396947107244977040473296751338485372898919851448791269339956272762863015717827057355238450193665288694250301571288649098993055897745148064974007108137602067660610028335398320724359456720594945121684402530561416115047237679687125269315631930981608232979504258981667480087815264867736414493569584287953879511112090041388243506999888209156555403289250228805141696787929926626862224670525490667495362501326970031824510114073519298152709116828763161525453362313242268045222889614970917397113535255440123608618815454147085320467229946939071488188603326828261722826964785169840975561328091090492994205890209975868027011829714381130616650165606940509417447084136593172946036832314886783783401584666526277938110347185652734290112646968995135220438138835925408450875742934048304805257026367468199997111392499430823809481473192576011528538247357208314910527160816992228141867532991179552447748792024698247835770179058176843376667776890217764906219369958965467659969428721801097813692136744622097478300409271819051376356123254861272145222616805180293256818310931413966592453103442368843397067352872663830004541951464423032623019071897598561247023586500542075982524898199075031653803249502601693723058314817314752430435942498914879189062802634091227267353344853777985327688970476167261585288351406035252708851992921713307057857638749393745559400967615375217782801162690377265289896203441261598810632168253206443816406129171172120095567473839167222962355574612439015599054488322626441625687126870485003449211415757614315487883822624493825719072052822435654030668643394952786639197826196621288902931708091506933547609363069503877964838065009708771258420744211499716985561589989747876513750578536272453652178066289777507327157034985477471678902956663958351111997725430882108300838719703001636037548232031811034519634199719570801626375425606969661834362972690706622306143131863618116113316841849516129647994635408155166288645312201056179623810144384620141325246851026413793411662166660443555433967260839002933424985605923047725430160485968987816153242523488947992749956804057508785961584656399688277050582480803752624440992284265581071965313962147422223415350770031361866522902424242733975223220119730089596891049854054474276975638059626226908788476436765519375681951996304422809024719659779814112299761130996689484065470304306161542840528984605556105277431670945479765425699944325615151270411776840247262990518468739384403174909227786713746504877565400352618233613582209691595165310030299470261213798326995515479430045282504041161789922994791117641217399269377416582020283502426115579535771019286950264605435924118006680782334174983342235251194039578690357868099795735556646348184109235356638053216250587339612730165179209152696307741603539343614876508656958944166875931028197227084213006069890327681248136434088291450693535007842690028338969289003676630651962125691137082514952641307300205723426006143479478418466207633742474019652349063930296622337730820640228704088095403944892602375593027578381867271119555903626438180369441026989560997022402685189290570563411576345663453530917836449127065514652145274516095709269601981935148250423083093324020856938232573732465561978380507982367839148964413212119032538371930512612143512054346721380249172084457240675607838911836144206172196093241887871539065311934562423143050595975813896800145932726803699031531485898178421841408627035413234057140637242334416230520114600537243354544085804784915273835605370083298419441940878577289428942989055641118489012798817424271309417325022464998977618499584448243196333877136064170050575881120626018903546125859345154561817568409731473384201495189375815899601208752575627603329500301183188095642910867929936491408742632266721386849152241299032914629320268237349095662579032064280453385167557256633596432829836906797154489491441442844573661312147165257729283228387225191227818503949144144284457366131214716525772928322838722519122781850394914414428445736613121471652577292832283872251912278185033318457537523118138891046873011202533293433033228176744479092066563250188388749917831245277956878032518570878771082132181754229913702999034634082431982200181814301695015867564772318455173516019353974118068162554986334692974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900962607546017704783200920900004370304772062396931123619969230694519212280751280626109033960808551199393625766456058454748929845661051643776323020476293348833136645533457348047357156744499773471782198157392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494687517220953402171496733230085430312773430084421703922356580523746997811952384744493338373857748511427462252203934675721232785066105269132797730634628873726222419584671667202215168082910005267022364151265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765128076133114000215176092898248986294506264798639727812087334479298478545315123293340514068472557469284862631503547709257191442014221858878025727912833117798221233680779311687586547771399946239543986001782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187931553299328948798748615386139152307468917410066261860777226791348713632214751656850844199178069486195460193408937081923214192638277533759194570326450236304347568717345295839955367097394731137451394332819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223348481105906173852298620528178960495007325704272220203936136382479583103543259855072621403409859627786017216895598750303288281768040946852093886403363652364944285765333810979533420258752306609947377791748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292853017658562910138814417266938379020705003419101213867913463546522874814071533820290191923514672126838275100017394805179223575910310629411782671583818637819546488431229736302075907294961313226423551084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050522725276683206603485380567348512636931946652992516290262646589416341396091509721872364027550026970108838683249414212571204886964565829636160986536859883788390280207060702963996208929169242011756462921271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610417028646244510638699279903132980239383229230786002461112125625374929920696236055497397793370905509150615995807462647693070614654733657295388010846593077370926439327096173358979875513329851735335805761982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290234604146428506331820780266740857504296549353954494865185275647088143513231959734978991714151693732568833893316283389645184887032263989305568945183919124308293251565402367538500430945522752298621936349993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829105733185783922733479526068004131224044446906957003432657910956173422846551383028777081709280043703275264455762009029489870172647182289327617882346799595389668011402866870526336706006304261299460849499563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835216523165433169772144125177003803902159813797489132029292775543871170339116322480752465724972962312476509351794356748381143152864133302908912377714661246904486455116492679934634155621188228175642302405169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690064120155580946913710129842552905449576450645756003740314945879082105473559113639906727806481459191706433870697147736652477844338630255698388102589879309501971312840708918719696749394002657194057221592958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367972646143529714988846055291907822957213456926463834792175940578051303673488795449473344645606796676912782679904942003628806990026035221665252664880972246721212946167822822474271783410535858490938180843820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801544096839417218455292470306663317439699203209991372307939208706332681495027024183632373935575659483558643427585271530364753467460118162312180861113799324835451482289863062536933279374737264046931267375653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121420491140962045858292255435749009027171143100562027796642732820368408835142189973676612851541741701550559669295433553384988687023249020610644580716922863343391855394434659741831033154532910259130360646226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654184843155648940489213580557085576275584955348891913856437916383424089396022097880195875047614164578733843443198087351575166749682003791537961029734944321094760732700463633436612590711792603829657765048983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910447179338446832504338447175872526993668623375707985863799511764743787742210295932621738817179921125649607665490503647530112846059719986422397278433919677740389582319175573259941937900854928259806607678949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387580488187287554778343055337141624291591814407249101833736072586131305858393796369137316050463865378761619976568352789603916541221197123163706463843508750588046575531967200804810632083118215379561380098353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365856916238996365175780762373186136628030006775952545698303593502093103401066548823876059063096671525803190270180565107741796599641778895066406027884717068077927555703510222371473067950065096075380534263982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588969836097031429140848045838420177059333087278988292106539860854978417702268001994317231256072796693509378461673808145347108132937634521964744163193311786906499824823727616205615024443944723233791069608396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195864738470798498514172853867527792306584091743206050109910223892981893864572160416894923402085594048059798887199075389944836245759181795872647854824368717842805118165701035999489616756458144117743599941557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017085252294800326448553982933954102504934105444614356130453712369616822024270875468032257772246764538690691735846329099659789270857241360685294722841899888111976949257775673473149204541882499353860754485383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389295582703356383918920724411566241363467937554167389089309186860803126378923091291660755009898084043087717386876849306238533350915041060003830601639488536879210612389410574394034606240163718548425217716754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056378866958466784875726002532918393071854726101201435318123008262824539075652638481662843067124140915353230173735777223170545453318573303986361162909280796514000762580295868325211303562521349985400678329057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989228165452185240832827912818493863635272203008598275445998989995835111574368787888127048557173814857403078036294204859420644334157901693839596815335852775087815743971924322779883170605463400533096961159954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660069379484763050243686693087498612911515579029908914751147143616550977810891689159389043228611630980896160154365423970713173398762556138393349278906057471453816915692648820151026214721832503409165624542935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178065469222072171325415946797805559574054495325587792843232475048202572961072119305427203445431119018432651599832951192425499568866292451206155443548518778433760228457318552553020385780679964233347394328325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127196871846317120153108720228291216785136832868288998410063083059699732951240183437928080758668778898496043772754027589522929366853922675139928237161596447373298270175090837568027446669159111149779944667113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068599518538704171062385680432411229940699769765217189489934971880450386432175982864331340232731735034487552793783486413104199496595525770669045671843550215620189672793973426821625686085922488113166647341429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146730265119903429865063967600069668795828289243397825905874856782626926330346837233212406615776029515653722610682290383661336834150499989593428093201865424703607359076560816219599759343820172461807695817834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571016446879845566172037587428149099843393046523931220003564424865028020022103872381508554360806108595381742785324654979231101510181266741384662946267400340729092430677564917857934277516529509846000986282198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007419842426013606673552984075440257317771495402192754876256636632097951348389232398473093428272993909549226286852582803762571040814041407092153377982471219334648252071838785374450072385259360567659576220402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004647444790745978251029444790475972689949375374692808933115543550514205161236368344100734984299470708653487282616826119499544459888850359607914367111963913932091120095413351288550899249339285379476656164159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864092372275714731703809305846661141052866534929215704384371938758254891849894465897489211239804355925364919086589066917390808867500913233054266548207715736402520816248301658987303608659808379615767364117736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132270006749972335155765795143664747023748766149644049261348608299760978362604927823173889497922468520977599508049882697239249576598722306469511876779916054956726996908515258226529522738588543930217342747557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140912212009108666989989150010205569248485237225542131071661391982827657429818829175183372084175238696768280591023151992531280144537722164743682595086088863644346720804079957456104290101965608808393098287160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251401194936905670952961527043291961756410101851405960839542210112530043203244772904509568672868692837978994453347325407832005428354880451308874136319369558168287460790465669459004074428841873812325676996716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260573742230738578664000237741531288590945512575353933694086944429394075221828471001077665809512756702014775408298259436553900777906180300371040301910921852932847824116551890922870290124041600452149317093577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201179065222750848154653606346843208352519510833216068431733436584680591301574087870182295987658228300204252835566932045019819881714582611715984000117232324846223680233784983905719584208339418833025000410026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304624009333797909203575516255166640057112187717239030015039609540518458169993864304498040103991612865934744955827606683482489093373386292669896469705317415608922966624289143819273723567260303050110341597015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457077160582123321852958758220305193728902001773432061942873421475237886083007029979653155681030112879925893918338779647006752027036887724058406643691909028743876338820971458010174951013464584028127801131681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175946226830306366614536599202803008432528514981788177127257386753550285133836792305674324368696202727569049569472142242467988436041192263169155678827648422239119627403671459897414454318006168862933763562397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473312690900228814761735924054727557410087221186024807065527347854646708100332528804948728188464766451387194846470027398366396786911087224906894452544993013613598230210096649662658249790741793302604479616467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993525090558673048169589393126688887107245163758078691852980464437598493901498640886729121561514693505446800392775377162800284446170887283461332016027846935141710371898135928565444047388935336434225299535630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271901680135018259365039043148923742221829972943591050476651019843549677158363903560509027440945473762000866255189537989739869552494420945283689372916225586445881857232200509734021124202427013381380975063870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122033297139754384364472277941952483005331330832659412681654814318367241851907164537118394561885376718611463451009876355610396882403469322743163868563893669207826287866646316230586562320803446703322414896584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619611519781599153348323975611162122210452896830871383545998806585780135485937490426395602017295786811549407988789989527859449531291247582481713710885909691407061933036180030332389191321684024237117855941479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270703116015993195665321105590868446372301121939352882993284356956065971989301484189419246965141950471310036209138468408714367868832381248718738058221779691668726770528694917232969297574129371576503104861498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980091336048094161672069334242500172533359024122452069662742838060791570974610193234327442284279030092197167819796597905954912721055386447240760083100058808181907244787034365745427947504666021168615328207936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906352901696079598667197919515472675399988477621888478510736605567922374551580096127346370372954709964144895440357070050979597124970791498940575042016503073921008375739413281657808571980285113042479613451450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156011457074311012678360618976337654085955844167396998989917146866648409024190014931111734620629582307787057948676463855675872109951364683099777160945465572016812285393776737409942830395155749453169206582037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992631395147590076715044412010286404223234675721465222554333746454076955442963733651832944081148165531123178885685344936256510923382232508875197006402178562624050439203931155127424198127866118045752037903135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729847362290196362231543631914184179969689628035927750615513987557853672663537814008171531831879331479803166307354183824985477461434758212203503303949134626725084373973133134613497187865221548479521132806558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561688661293427415216860453695085827710553806842470639686077813289931062855112879954394336700991915208886144555645744227925330947510327863999828608664778246977669364695968209330630483252302728616288409185402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597901109019161465908020748496263935827926505836476767083830119688555050518615798097218529807820275467907773528459488554864209571848095773550264183796622010560620176724101647596182317714441988100961027947776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883976072610642894763770508381680928472870453085471610727866631012203668875829064624965329442150404260896079559602848376811583310656398188715410222918563637554680861467680606261759125475132626589633416570626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939930380942870786655291476928813856458781496647798082331482664021665548467134062401859714121754244097871277182877853413438373825809953777455566863903097000614928407730247009172019952462062453919858592371345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825953909465529635813744972936997465118753385374870942177080817457017422516040904388461215741244528502023798390369991138969673477880497042088863931284389157986861499535720637694821492093062812513122808049966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774947533003770602151682554216858882552052891371938772498690820253933629404730475050099704407094693589196990053347830446358119649104831638160680743239747518873774504853932080118920921762003254128590019212850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219237911869797381093285010367827880608127452828831039183157044148037271526911195891382735020626616788136738930058943498719262754217586783775861692911564196954978050050271744148214225317716645648976255943758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379023844428627076001335882937229058956135310992448792377397001263801039062103629710054009023326620528685512923889365400766396639839257245082449689892624599243943845087655789090281898568343345109961963840911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852843349776446794960280372242292312092581552380645150731758263978489716595610762944958737945685198459060936913497322702428238293584834762009727957320397390824404902652459373962572954491177296085988591097983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237985512762993523860883177146897285715591047969113529008536773754899551247186890395744660004847954014478028822320824256701845114754583859463997760412123218294512072077908176823315161845542195987497445589015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923220032514529417553964682719023521957637963789759417505215867542019285365596662014504563385527835712567120512822751960929539092457841885540127128286062203184030416252304573349919862033683941854919174431281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371188316668923472566531471542619736924881856774442368306762858080355776670852493943272675918271305802820474498683109238845183965692912826914135802285087920263815575944588577839176304153824777450273630047967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056848562895296270365033407284992457076821660600430851921449939946159274018679067024925091880842549753825000573641152765627882068316837456136116466105945296098764787617810657325699441300696040441275748480590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848086809230938328738225004285130861556467382313448911976530330590349488507090436408551170896815968188535559683677670828759269590012226813063407905218083141753428838750131652921876633335743143710101634779665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519025533132473935518421572608823101683181764097241796642821705539235733182359972105591467580990960157125453625914657358345108084976967080717266943718308124966413928529324205814835226274469375858569571687034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620998138979303709253264259640385349961705463860837230314894810013719990131970126280108496986832790805995250749377542359999787837446577837123753575785267771063814356136789079473724792426181599280191554236358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920177039686011345630444923339774354557165457271495173534529046221587766932103972565405338682391305809660021212324831138704907261634988177752506339880373528304413788504053529141957344862622148033294954488890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023452589195373557475092687431529363428449640771785673995843814894210462851810384964342773551924438540110560036409186090659830023373684591499584014449901293693725893952889834811556455810610307945458047566465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983705466444249609636337484865587143693424000842683069466472686782160543076055555157113010549963694214120145286056715492814503563608857935420449883125571959955870785833653305512108392849984112684790571297220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254373163717918996081338444036735092091110631733765874016000186973042529842024488852703317251469249747539319823503525226176160943848097053512457087513186892673700507442774120709790407346312262052900063918929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409523054540169190591210298332548738443149969008179176662444562571055001406036680013324958090641028348771641935647143040955057638038573852209871616795910485222080708395443816652953500877460681136027308248856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433820347665482730341522657904235101310929756783048481363297639763227467327299098939274496385721441290848706448070466163067183262697301895505226175036704437656063860897547480919952639440353604654399823773561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194757333735565276274185191642451462010498782629453689508844623211763580035118418359267598642971281398538414469096917190799516740467818935875027443503551180799677762498706284759291327261688448884939141128745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327624363438019532053136413435545936470419843997327319281830257600857675302583216967146468343588400391420370724267082601761625339029898671526756221981306035295948446464040396885600648176610903305607906503876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137693692615910228511721654148892157262235977366770146398458552104707476388972254902217955783473853630081933437898874815680276975999495121254415702713764902775150787799491095614895742622739879403322128257532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958635529369130347698689906133362459084735380529991695237406505765703934901547390655652892580819446962840122139245511198760380740566099410523116436019256847220532851072587588370887878354074617797601531730495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027197910059137380934837758636139977194367200655924569938147027619184666121180429617186652831069577660924377161598315124593617280103901636552046619370925251253631396559201177821427680194280476586534858158747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578102731389969995468673435181034432552595169300233005059257279978159048202235890526047920348250750421717345546642531252852594784406842133378979724559983814529024913412772434245097179511864461506281528392865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967787514587916023970766660441333059400177251968288276181389025401421411540322218807522149313873039438948386348804885872573129605440226754011944434427123955690237907150071386106419858388879568805486335172808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880446573989800377544218462997919330400605176161879860265557607689149567962403302092035338230064198575121280549087681264999866296820216008393577425692390014509676551896830011498580395006624633861680225506687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352351393310112186883167800232663769195193898930495655963644304998263623322221317379586337527290159802676243820849089436428312496796216250016352996689304462584580416724907109041427954474322776405586064497993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228212933724508394353437096785432438058312889505278663565717128803698528454871495079856246655577931705079028998685971436459307797350701401522754476693419823926389892945353431902180169387585028778687970204616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471502577181072308962043626415525571521279045835429590591012051850860519983358295202764452425123577351536145132912213357834119671870758566063500029766458721899656846809835422555679769978615295831620657432073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235435456301512197111167328336550705832479172735651427694109849863570666188025284345361197742349000160410913598065825325104777234873758588466697858029999224197366504115511962816004732157650700516628984539963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612536105140039171681725678050138978371865837968976150172098480602272151208763671116355293561961304020927396418528693604726513966875563040087535856868313141286860922825551242269595679930350249011366770936403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897498738447272613724351806561649931638973511197033103939780409280947997343377265021224971434098237823651965892886279223277990394182050685698376711662377215144120227663379491737437342283179727940119374539049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319309467852848444202128432499307154135644230793862725265852084922694843993948530535272706823358639486081705774075169738521202106289594177160792541306991346081438246328669352312659073430366809538595608450167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384192084025832685521237954962489115862600940098765413585870619251136537194814860857107708376020972374659553114403073394942348448615252372266625317209081622694000211227591834255298281689971968761014385191901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822074756153078334803008549943308739821340270700031128588792796739627366092071269711513819537715546410633745558491963169175525559918922408979783312427354538417960278459589864706009528418086646771109464159843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089758022372721112814277158092157861903143823282221584311973638679727227684958136328147018276523616998703831654805714617520177978010749005200986222538671343789879848810445030271773860682106718234856661032815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705003148229690781270685023609679524561563176253784439086838854547176625054868861453885894019065091841015885208833696129877316727526919756238642760951369458384261852183389570518641326320252293139134838082128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730348406647731247285364986970322550580285121031458139716550054021999125846712475229623304794762041748357339651293388462598605466902068727431079892009360086299625852649556926342244349075889871207540557239177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285223232099956252907295659686256664761182174368893655265842097358804838235632703846291741042746340327640442472179196338923330045235292002875730135630382111728971331694363722061750858152029084972463690556676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532003307123860177199426979987427119660353048528358184414608549134506444317130866665673247447943228054733913760627581890428365658659895466488561709859023357189364711022191554480141608108632865265720250373477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632651015505374677709204156476462475124967230114288483953970606056072465314227321889583835501398502247980616382349453661289940409355917809265868236064198494786394927392551467596218556484340287163998424165640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610740124283011677091754088048806266575048744970010064481728170337185716876990520504312691267589423546424263219268161260713525593779984687684876663746373708483091302303187597551925243991782626402799661636709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254396813242277505204120843117783620864259137414037018939058491308853076718033777597798154504060045084281692653954942424173439682579794296332233121321810780129321979360275038885263104587257887904993301724937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709115452935541510645510350947107201788001792464135972138429948710459775527984274506977426564148834068300809230546462603894832672239604062464659457420252210842881282668896752789802434682655789626562663797453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895618131122294700219784482415815445098198891529424289069346605626079565664394339342799835882357116757511632925562149947095183522331245810913158655773591758470369414848815038632640986605244160899442142372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985562898184920845362817607417557822466638790726046775548345174434818904968805637650325035359262713745149886240548295624736933344962330902739113708105840712372655403944406661654666981279401611743803144254583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377111351964712248442133833448299147401916929709782733048209657023657441662164041385975719940110755054813835675097536770208621480224769057593128457961205201060652722159599745589563929274161013544777148660272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156348290022266587224538924207586781264807425984310372314483507393491632856870879893530898303553843839500797078015089931667721215355785047682448066812060081609252490055065606882005394397529404297779977739095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019590447240163994449258915452220947381972857356081416294420120829692342136751905692105337359237781600665668763641463665790435737824436651668510493519577657907919335490054245374836258264105168437864450295918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336879664684364914394999572722150580428992181009895079934494421419902144689255392867691751039824675824637343805239735083028068718734460641876299320312170407048304612916426319820862850786951729018997001434289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282045253701080509023511484048195305888064160408235523512941281404845448810370856942626000271639230100860372142424842912649571956987321905242756339490162246454625934745670300567283750846724982527983673495617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138275802244650509860986883276779711832579391871621676788356224198867538683931575658977686520163945282738867440651787566006894982173557480744432557759069273637848180513357096270189715205890970811986200522767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012870066672280267000361494230261254165504582961699316384370582967507053229269109161196749361273729163120586368847905250952735154380622219327300289599240793907443857366909352949258689440107342217802437077152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533507021770370706113819105163588030747477081980826531951055240343461890804087728558871026191299109229595088225181920585188744198634862518824566545078032953634810263484330308372418113655627830193910161835174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863290538086835170964354044025686679116884443421694025177269167200542365879524586487291931941963983705910834659556545737455427472252563872049196484680456121634675557800183911458050720291040917746197882965048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529957353054281128364842365947435959609595698016202753023959419953344628208264979236079421886804110602415874150857519458061568880834301854125378195459697414236778741870667215842752231935277070188776280303233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741717542458522477357582702959966498541023115101387432370479915917879029944855016825586545153881254857425414604291201232285561488953271771724012262799441082686913997298743825568158111262387326261042642491914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655289117173856747773113661537343917519627079549216170937800543404578737896895794065840260922267066639747064746191485114465244380741520552128686202006717232636847179672315491533594924534289288748593176642699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140665136179949569456010819284319373673284179893518959542351970228934729769771049753586499567318504695098739662801395315247336067459574653673422509659501098766962373414060683935034819838271821186844060176157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215380142825486737769528370384142793400440013056897835562279860713607059660446853343332247081996051727615220108066710652379501907097493741821633529938651891700778898834763609236188052690600640828079713434978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936755213964729068579735073675718216974036670698961345787450610971203501479565375164166153121647325441678927750724594362819238256233629810375653289132823923222725067941709469131856699622676300847493329492377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557354263446540469175078783629783037122212634499537604587068254665673292775397228603678192473260758753750363960555755152470447904689279007417440809916215353523795515931682503917084115733894721483377058789369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925718383520195357751110303018937387366729568834759002804669015028041569220627941078976828096269661012137488119556311967779804681249306478374053162747606283458684716459438243677534276082695576532344276053399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610883002718765026082629252331944769099404167002640065555971369918146697911356778065745105729647119638264380698960233881135307214985853687086285871789268796297801608941639363012094163552302777342996301526343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455921179339272708597251152880056940280536141144924020924620879487418362248544537016734793590201500699089471119500954771699606451569340980957608723061167985930544742494585592763754265507909850782622745241428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115461358447101311323201495490944640147600030237632857171395365471490013555869633069258112640479200531728092117912870096788138937329594906876916230917822286435333405933967916024289327484446631559457485611320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173418957407199850352736698693386698517025739380660230279106280853525493531661945852938854013476198182979019270269975539762709721332077521428883136382794037795481043639684621695249482298443229689692085335553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686383246005882645729967286706470688197188048995918209538769867241261058123133718832815387305324063517160488373186348319448785524534021310596054326978736278990273623581526866772864841376321754066899897348826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373528762206005362275872876794657916805763581432409253055023886548294925725127609771043084142413271492230145550249153801165157010725991966088910334458778020184201986872557983485892794115791654898418079655981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171880139293408159346577407491687314019903828427712262333244605887567398385935007695131185563168457383865551229294080306842203625672459181138606350480155226167063564964286732345965669379924358729329116688498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445517054009459274870328435199388140267085915289496359507636380732347053462309324415095756918504808919571739191653100024157142935668690970675538485026108040743406457426342832522110207103450374538340721719272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263692292015196267454788905487300853342208815974032892535678247804572344855566388429936517859381542871473470540776250407980710868325712720965952470280931298490597903061967508059944421798850698316109638043185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317365218737272703866524342059269683995858771658075362930491745821027533012670236222733052137092747575492754032248665363239284288788071811943447754439431574633737742190514462638401483845223060132636502788451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090113815606641323294310535403566334982500900534136214959747529802823984619728367006210584613977815827467657982601784729657646395894187742496331695884228391191590565640228193496801758163840139429208142088204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179763827239211348339438798962905840179686360943255300650628889732392513616327023907523959826534893994680658059487686462751410940649931153419873217299143125910097771886869455712444493582861381259764637551134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133316532483088503470195490556744841010321876589956758394558238286883108141862835473194755252747115754025434804661774803878685983787156949134278530829472887354120431902320905952954328610661326976076266926611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887688325257374385618259110897501964314793725720708094058960553970982858004455630785998611082978451980399882309416250986802635162822807560816507048348964416836183659463297691973326645044332702652964407332608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725462863519781030237300349037991793076886122045326513181013816898791956784667866144331058014381259912791415887667170290675999071222928172745278544319176377518648854469055214182947546075537345606085563464203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890713669103009266781913030559195116956931783197540796240338421104664465240458186863932609646353033471129213154369571442206723727019032161283163660683535359140279885260953147441976705764010907530604721386570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401910580102425541713566189612060110697612033871217695362774814702404628795944796568929166656151629117736946184946177683166359452851171641400879610965586719421163816545789355943747416596019104026506996537608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964778734767213709697787437222222854441505162581475900160010349873421642873794152091728087438528706874529967585063462361565683806568468586659128839299398749192804509759935762191530345339640241628163756457337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150418730068917857381782537931265322695642984805750570433859369934339345604496232593724330435766714771166426205667161937773757701820493615978206551775960445574271401595850624208614320221027947003286440974985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313999893872678129698371396533436978063946676428600241528248737856394129279353836077076083007500854688366849683447381380001948099946392793972548092617557123230722879914729499627829318121179995311913933682914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856303750205262948831696089490129163137263488580498192487545535248873262394393675045016547689340206821458565566171050775119437380589413425696041313947581919706682302632423409024450540958834108768898805836001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465088442367761705462260845439722219403554202652033104455269007046882774582145696636674469994288417347114807023479517943077836152757400116754238104978226516996793270179099132535969256413102120317675960263679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213380532448446537714971705777121738555021403641091178389721417976354731764860997323702087657166232862736406666652522444844237047431260270194052932539203881245611678392260714780011957184750455611615250384482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903397134393158405916100858639382213820227170819247577821001503916384866601709081390913595334061901462690424095680526240107056477766184073651996598312015914861912479104532820849003769623579045204928147481448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200446505329739125167083018255429713022606746609800526039196275579838950906924319004737564018360745493485910179447557716286315055488761028672918186758647664447865962782729403999320990533549691384757430422035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590778313094730099299395418271818059977319955225376562352261687988048284720314958906256968944242784076171974785212111708675294460367053355570333619526994064352330819095743708046560784123500619341564951004973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092404234203139271646896301370562218550399034622946791769783297015241275735845801308975952586398550215463677050900703329079755832652569733099251994233523426743245262878343487803932099014786974131728112549644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732048900359565314881818133524884486986948006125364742775500050420404621034425555880866214425237932464586130867091526143968878163367734969512409007739167264140941242164561853646208583805219480898873774634285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251435143479730725058985393503441430103727693308287010755526122132379489153242485015478457009774568367395706462453231678342716059951325335038447646180452988910089257614236456892093712162335777919010169852746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374694859890324303842177375760809258836398494285249166123974213403066399683994573153145921895618542973694163929127458660214919325606290835478894538705890991028776842634490924275819538227715445507550828207848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138809766453243327235576842641531380978229804632131537746252354042906035801705619274468848477598491780867455498329658519534616200108125422426766724465919850037372467000945314183285138022443386726425015956759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856811345564839572728890376856473485870278747092443784170154003374569827482324692217767073805998507558616687137871868309680967655837021661114077220785221064026826988873072896051684378352036740225003301294220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896637844058341384482455733859312236750877569174580777066637614313837033604334586746501571999949357092631498313539476010997460000053765814494573326745861063304932150297383939354427370993864150604817313381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388043743992695534150692609552099668496362196097541990256689273001830398841155263548758410191862585651958949917543670137752629621235562608907598144724510634531684374203926963412512254942553244660392238541492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132111347761834591435006804097516578939671178548516522920677835710752551395314528231222460774326485780214710696712582490549532520029801187432980385609820847498781051624257385362174946834560794401386804272597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916503540532053541557323962865877885010012105094483643693554565652987025104273373112703686432701853930462298639018498497790852704663810074106064199346768348792149018237926231535776760045253983094883499531297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411963860551522024968443939425305314272823845197724460166040399583547279137257994876905630996389204706293760505652182054213457997735548935383680336528207608125148943624690017425014836948910324978639419114600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045391472137944886307027510625910079537399951394861744903022978921815233955882101576496402094591940900160611658741111198073433510338190204012029929324031443298771647219418758925676345923219909229015572393372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447039650098998538011265861333379477552130328891619787933732768447413283162153821350502232982479519855842530644062732756704048542157953717334383013657922716976581525422725319026917215835634790655014339322211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392695789294479982420094939266427073943232747132009716034757074410728503079630390757270283805020959161755070005016627792429318124505238672399685851931779590388404675565133255758214943153517959498790175939954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893982251650796556806740552933580416458692852316528925062441034507254751746696957664759912065568479831778838624441646954191913411663831359509426984078970554946580729459831838654621775210631145510433633536617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332666946548174825341725229124749705114616160054281880540354198947234572559079014198518298148145990271405143266071026229634919481259342145337898724583097604861888669585130390729173392077225689609836520912793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017437217127075561619143805327266024494866847503438075251839224592395717830234714190223503503807941127277487289504002308047407224556001247620731599212504578861913386499033912685147243309106085594366056248486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993309994023927494381350400802944899168793936676108675503546923865708941470394616477845589307011895036016968430078158866532913562055689169725157812754395541621519521053001313362218719381457197443546784636798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123406729773141705079853683002114655362735781206338697324687906485958758167228676488743765465044904838056518022973211179540565437944615042021563406645608062174908344929657888829537930350472608621682320154984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408516836293864444543728252821275965733418806978040386375624321359353338276914364031872205194448826998998678043790503172651953332428847616800651629802990750232478834434240656782881288607696374064960256307156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572750828139037673363576392544605297160176537577389894691397706717184212302966812872049713645325528993086401233052322605408161138788925319487861723276315274802047699701084142223997929110102895691963294280332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915038777361400928153081940786066474842382259576352851784924147444843684342520668215659669197697288057366703621563551249944361226689330580394804546277509788735672716123758257138391394108724319551951605337651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449119622244807371585249475527582841371687338856845139719357174351376651048952390290170630927122646840669278348399886285959423967936456417355871840199018757254634606762070626278962322034805371836351794691087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667828494017798965297981505475435803177585622558690610123023401093612955353576358432997463079288408167023366788970128145958847428199428749866143771185970104607861183122285674946913190742819942874986614377118597010460786118312228567494691319074281994287498661437711859701046078611831222856749469131900448256430282620072487875253943979012522035179906701088644441733329427038504777629594843814990998912625348880022470112685386605943766222703650826722123222351572550376503854095253101757586873383531199693602416600396509280727438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900526742759939791372686862785354305517912575047157660184923718223934849391969295394499883801965726625036517574940331196959794117212576237138316511479626055791784402781881225538340896398270497890725743044303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199270637724170339781113332382715682773420147905472616543401932267144218019610533705026333742731904551879487134852498626682222111113189144557622104228983473903499812597781108090131864256708891036742980304913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409221705074598247207024552431403520119565313924583310091425363495878979074393713659709552725556666007024202839100745946246631307454467511305993777512041192805564972915123491505532781022986430608405376440989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893286031485320156876979156521241896700403095917277570816030186945971407998244363332875431922140735996952626830385659584520895655497781013274539434086438652695414066042052501513083780866457299749256903761709300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743667778903853858623918147815883532581378931913051647239015905150073292582746204289143926675349521549429240927856129414258693729514689314270544422700093241610933444781762618884916441692560813590775794473862060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746661545188141510351673498157830888050629025247278491328835858571968770316330097553904904884566448974688882484225042274107690691547824158619851842195790945913926945539349707417082601299136137293319908996124476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854030332942786443609114897628797413020336753926893185945801618329179440100958324980587506458366412769529285982657703330062345826549555323166532305637373512195284921489639294238105955982270927599730329947375056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268055732256003141704634220318975782077302373862469785041650979758445271645852204355139759287529508954652280662696943449901488020041811864203977422040427026695544603299092549594352025279648873458005434584684945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368778991522104521065020038005180834770931615105441297268508996642282464489776423231947675602438097694631001688776057256798936928008650248744676082454595750132838100012297473056539991376611276067858345129580303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354655910072431709715706097105968688690664790679515081011519705136357516361120759637386375738584999837864530579030443943012950410974378372747321582107022267675703966141860877443969096247776142982681257255182073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405542134187651641921977618868029589218724367391297929670217002604707954075998806965382947068262947500799209178054501087213183671030214034123993988674101404729131764442090801109198035244321133365358285271828432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979665409430270049744632546121224141128329366437940321984479276656109271707635594012205535902446730707378406810891604840226316131653788226130623476493228155229195223409251839601714955706253393019190674597189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053325334693152865228184850150399380033663878973389341128843457735233219997625754387619478290608410492317086979272668565017717845357601444068717168690095280680343189335630427097277870650886333372970310015932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528426114373076226542082682213459467537033662184218165664434775720963001368851514596794720360121393994632611454144468275264866158675668160232392170474512570134865906164308600588556879208478336062463041958464174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596170005018277089668242632747552939134464826875600962762224250729627218837874695585396808698731268923748126981350128702594852987093853722712995055630159371662858218865916052074038057260330451319721679291477186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089417048072193359887479736426861987941028542129529410436548061666466560953506812679860837723426852206158774774504544085972412357281362939502487721322918144746035282409050040101773662698641702181670351818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209127401951706180387212284307087960773113725441306054172989950548378827727046663864191137798869740632776799960810327556562870906770161485811851671525572067310925943266024855593887184124304225616774615108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332201658891141005158542238840636728656725089712885038452940316291883714453787866130540009170501111547185436355831033207211981334858631153423601920293718304352616908440195500481450658937687152384712418582070564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799163796310338254450612672966298207689283473834827563761713839607939250893828751938890837424828395334225664013005888776657917835977404067075017710871939114578468254250012110401156781381295662572551091764603659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411675919196403395008232212122031948582192443475529337530173935181814669205300676835498326089762673603011784585548752703073220035324122391029670664816719559254532213478249740250027027480599816837621411818338760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284305259958631497799031259959268523867599757644136022576047065119871932352626491081301935915996762477542005468332913608093323184530910326642695702736368861586841986355898696621612636942346269870652951646036590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514726866925962255623338825444915338951480780353160096236272362629321093838121344292596168977607129610965328581263856352840691870726909508719908487588059768061543438498330786223732995053859544652872580091738482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991027808588169428112419867803212676611908212068769439025689831855029507358136283325881329349787561199657064770323354601359330157371869985275952788401552313044666467007044570167374730294477842583797133957981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281668368174614508881058679402091696237070267227078556702466966215235923248906556541142321653001230668315813709501175164974741770771047867114423127030825964970280652309726522595350260937603204641810401282570297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239198832330517487617761060380242248693360782698348799053187120193656571881137988285470003661803376461641808005621106566571354457380355721627020669870665961163026692813351285972342273474043550450301843661570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339020402152495716237517713920740481216320695616878374406751427661181935704092622544281257244674793566990224000161627935699977379362229328899510966718814725472447442332450832816113588506261778134752263774166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284703145335685532116346032411910969004980661636537048300440101181291865610897469806955769191358515559383379158906798187857369687334916653170293483274482623496789367134407267722684084039078504473370916901619483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341898769732540518357639068967524643049459814039960198336818628217058607337201469935697285000231851541357699941300289798454638720609259916567500425745577213855821606623818818432608559086488423057729024583754833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624111861001010409073491303067136969073215943484812974545321465061611701587079237826776752243663566391919604273126428902144018734759285470742567034499691767523359847813886556570589998331860123461503647593817115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111714750193668254719668444733985153038785005110697902006497353545593857570788333676889246110793462714441980272903059667094654269466800036557248250538537265700346455298437548560576643654846895919870325550908590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691390175906117790840555041040973012675087716768600432640471731730874894457953682806516682884188097638768775167722540150700393369379883713582313675501585287524033755398687094783975615794630852599146212072385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087257336551244363974172687751532206542256393391424987919220299243040151353261830425163982175998799403271770630652960196594660331660919322521397851742027560453282255800911070557016085197780657101431630121188091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292384654515372513331684033152563896589471100879881182953236468004613394537670149121770428219428285050662218846305088040978357011532665491625524952638509627579674947577160349234735962801761556267439062330347004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944185025304735724693730561618537934068829460142540221142337313972408574494586237761932255185568911036463768407051600360614064357081184779777040599564120010460141300089078808937759529574504765503905318359914685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216002608240455641818282420715559304141284792123814859514483996567150576460271361040734548881707227180083296814012039662237524091762593050119645743753899286461890218741075016941551730748796555794341221340186194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623367092708922645324107817862349300203648615299307013684697050663695876213038719184967362628612877313530772131662208880690117845223199493653227244317747904408052101242682827577605768520721103235336355173322284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919723243280964233209858067469745511572367038795593244575845312260023956451863424137001098615026519509650127633382819673659764355940000898370507219226837562534245796421520814153814035283423274574528218865399845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258040244909298244953501327780953256426342626343279899516866922969197876946230763821342879185340166382658613898105566506740106342082853947818002045364226967901634799177968142697019624314183701793323920820696391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943451062039746655514720561706101946122268668159690483839429043099283167735414442937221925763921777923422377339714848818191016998201827862113181284536326398438621565509677653198854178318558674158239004305345117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785423135428374235375872168823632205507065270649525135696367521210463206418432239356377952099896545472001696835107430770193988419787070947694987486420085547074572670602171274095669266543143833776902401314278999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267356386462354340206694306350751394027442889765823700307564930106573451869821269475788504119196136104609343164407415337439577243588525650231378094754319577305451878520720986386116227304334532958754748551273383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630136449651605514938227928344490837674328198921142910431061110868692165527920798201649329374581342150765511878489276738254879351178323516112085517841083762117528150078518547781860767942864148432332331910972668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996527368845240942528704596435920760579346684324145325596356248748821179120818397034784641754929142248619881698358368191292319024071712957000768746334505854605361897413652911487487882667012766317504121007203157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824492437863318852768275374310490354455242143571369313856402904000656993625368177991878558718447307705825297435057486641270846544260384727445331835298489368389889780828901862307448404708449085284940303943429554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519248611580880039606683439401908987378192440400219832284520765154792113692550747874165836602422185462194643077515218613558151988754046355176140959054373857005250135809390485967216202160698441615690787716840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143123120604881956549350282357979943767775718356659006902041799336909172824104906231327124424941601428516096280779063603833584141992709154227684258177499221993057258032595123771201299442484070122796867944473418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545247485353154050111681242847495790437215941553943670290712577865368975422894964011618502443713140843463035435806477212711435043136254843866092436155003196510855005090715833704150255688910245840041819335202521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055827898453333313654848945088878567519040445959265319521581192448981135290221345503835659827193694931765657818676004700773169181645503419476677438018159033309930256659566680601025092653011515016062246861638971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861267048908177882768775796117833022329018460019071608747684231522405077436077933069971420826618840794046925806327424727504156574254671472330996260395728653859055288800591122257746897621928238904065552137197494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618670681274946339286427366151155891224086859707892700750339421987583653597343004106955922676103553305993105917631279351162971407960650125329361940136650630794157005021118804358149453379132085873254843046365963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995127482991205306812955192982493827214779554101294437734517564251171652621616699918583564687464935792409772455133280236293667570990769785251422664119119358543450137409607937600508655283422806572647802204206130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673845090202972431809123127018255195138346002937882176207767661470179105698709532770660030841618105920658748656005148395218482499254325485613250858519743641707255380319640692807156322132217334545187661557552639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031397199510930006010300715333345290159788935879859588478418005253796008798347110926578754895419075386106622018995978954059343787394706384236767750218336928872866052783454452202405805711362960075974665197771111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085133781496316618857710806631255804432420769864751221658236162083468148414083152527539605062706669652630190259384874403412660635747377192472521516522939406695524534224812999183265659442375912055988200472864204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020092041186578702517859183575055270334768877563858546273960750997614740057219289818296672620120311458260815855382692225101382561102542944306796243640089978100544006780213427670764254992593671010228467486622594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518257578755341788875263978855596462447492326407482162854233803633594937489952680601675414219788350902373105768750328191825905212533184931830610070220267858052785156302432419555393856571133062252246234147971144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073523915452858111822298181564944792756355332235062904962376021888577294081893514505639433389353397765545634086655528265813600081646333452544948450595556670516310770887250520662602256057362921445167472113886016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127453557578081715309102459635355394814762771969164198426111827588625890580436615487562068163743408004760016441984380293734146828677717616041428541260642564158093743961591292427136313673177612445899338591777306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069966838423817943612746986659318961904532222329360316632960149436871828093274304915238932256255191114730075314812880720642684222698113618552015447980876010728760945026924945406148795259778098636006966910137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799676887349391870379821439167206459086965189722569169850999031020309665736330187721579107878142644572561741158418587769963563529157661151716117556191214637721380113652263627127850352145333065842404271934657080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639874524038583363793983563393494459503071442769421392165933515161002806826001862171080275899091634546246022698586717454231097729730601950455750212178667292686336651258071050500174721336920726980719277906330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366401669154640260872605066519849075749621296331192046086424701059966275204067990852111188739395262221717183945674358436625025940756778745520688317702101822639289293331994618955621433939875377741823349077638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517725719274788305783971136690606455254331919032228919360954971843249100904540662729238502740563383854859018826814943584364584398026261111617176584281609795765250678761179511632399263517003261953415092975005534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740884727787435452359272108804052625835368689199319844609897160844674263673591680055284786340626912717217317175606167717146347556161980788439031135847771642605104747457663614383208549936721974573997978665227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392031048977816919904548372115769326147221016937339567708656913761110869153278354055689486050710822954248091805580809585284066735287814803865380214664675714389654758086043451295539355130958693211086299311106058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171918768727725748903365671778563823216530569212911505032641281573270750113835519789309408910748803426109088274141371194091230943716786961363607247765710462348615040606854704645771878916603821401434750973053691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331730516216341090518192260525546312264355322592957475728820016262708082360424445903581361990459604491675403755372720618198899951477716149327607979993540532317930374352758499542681718721374730002593356153619211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052623316640919252238258870955218902881295750521711655979171308253404608433079774654768816669196814476897328483917921776776427103215174524479507358807632890541673160318119261024170038177565961182565415251809679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994468536565991927202723128419689666325935947726672235001137195026467308449262860959852620522409521822359200314706982697792667225042365592919249205435035444239094088057620105046530926977313494108572799763801130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465465631930250501495988840192508559631880923328014730387912919579582510129204377653347410891807580724712724027616662968626222223166070448752292147150714615960773351238272166915455272913078876136704003344771052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256445652834679899490660341741368476155773134407346980037980421412267132037246532107321735737604919320627556467665490391302868997801527791202724751053292459552739864206624529571800868091573355539701965129310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271127053976438946130683352466915676444805847905318562649578393545468362970975088640725578236692990650812706432076742539043688571381094074585565967418113481026729780128765977058162672845756159328126606457532869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189526791483040045423024372446249427695881885130478794805150924022184727268743260289620485985683180743752148629099213391399218069538074436347110623021020239908016642831219790393108898902868127744913987781601236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553650068469137995125330157088169317619805957660961132814536248638143747081376099733927934071387102183560443794655957632108597263805611317386277996186628281065800063606056696516050027546320006428383399004706861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528458131688323343861702634545310635732686171417326825210992719583249078323219289804851229823033793785926972269319589503335412606776368451920279901129435132900852589604906134817684612448185863452673249441239503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219423825090781889402643536751568910448856832921283602581574800998458320548765308408242561350893597229603185883885803835818566441215386708767601248310104630844744321880144790933674746884478564148174459091245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196264134750069719405651950455051677423979401968998625278900852374458073288670697417739635725450609854234567898520425073228607094202639484182866925660616654440720457756839393231226540781247831666880180301842250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955893793350511840302252987061629150596422599960058564895723365317986913669699442786657891252568462604147981108656855717390721330789331085259033331137185877287034926279027156732916866271667490819931825831668328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490057041041360404351376424689981526806092554011234653295043491805374773561666671046929830956789203164820639317392212484055120347806321113168133732240632164554155882378460919427380885028383123622665497443005580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139608514643713039321367742124709044527215406879215426306425972602920189946552981151426126049007638671417302357272768390415597234506666938664605882920124711441788317822348215338918760583632761818194332276955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496081785626051088590365847451503763849151340003295163991062192405572830081035217619796168322139816924083576395562116571261121929050871632552585586496166382541935914821818761959232920569955063764581826855752211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764646976485400947963589549754614481376369705916356998368119875250547930693532075707667801484477014247162419081668224900742071118648815477289171865359677653957993350334272821460541696496009847069795855926430428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842150628517557352999647862552954283674298706645794337580101407402116186144843297657442634285287047785563083096314352787830419450197029465757777328167468580874539316039372533158992805794346314087358608617788263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815696109142938773471389342377361910964605642444747790820760496602713561689541064448321365980829389097296189121183429149061638963861069375208953468839833444671898212434780723874074576975545074368467471350248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219213848299058032246958424323158984432510396544353505354322921674704077861468485976255744615351188003143056995492784716745449726976128393325183819722232836070752278129281301065694126294873063426883733818174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749963664047347703898558730650760387099773184312810989789882085435595509432539023718952168202334424557257530787926339855090164559423733966252233516487505895569421729724489599882508923211203479589415465460303787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001095934829461453907889066162640215013073533003319207456372637707709993999228862122432488020626348508885303601072343689013606427581425283987859491799796112196379757651924521867096088092137111977500087815930430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971538078840607130686803619824197157747638950725346840456919275953193722370222901558006560760473854735990447799674874996976942713766869553319512533776409858709668386326392616494560868414037456842071940595070174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611408747270676255856777511995666748615196491297019331808499410961813929649278936090212535443327375064260624299412032736255824417498345094730945343661590728416319368307571979806823153573715557181612215678793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928376487479017727412567819055556218050487674699114083997791937654232062337471732470336976335792589151526031561403332127284919441843715069655208754245059895678796130331164628399634646042209010610577945815131999308108305763076523320507400139390958079016377176292592837648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152603156140333212728491944184371506965520875424505989567879613033116462839963464604220901061057794581513199930810830576307652332050740013939095807901637717629259283764874790177274125678190555562180504876746991140839977919376542320623374717324703369763357925891515260315614033321272849194418437150696552087542450598956787961303311646283996346460422090106105779458151